using Sarand.Net.Standard.Base.Dbas;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Text;
namespace Sarand.Net.Standard.Base.Dbas
{
//=======================================================================
///
/// Database information - object supplied by main application.
/// NB Application may deploy to databases with schema differences.
/// Each instance of a DbDataItem must be database specific, ie. must be able to distinguish the schema in use.
///
public interface IDatabaseInfo
{
String Context { get; }
bool TableExists(String schemaName, String tableName);
bool ColumnExists(String schemaName, String tableName, String columnName);
List GetColumnsForTable(String schemaName, String tableName);
}
//=======================================================================
public interface IDbDataItem
{
//-------------------------------------------------------------------
// Population.
void PopulateFrom (DbCommand dbCommand, String tableAlias, String filter);
void PopulateFrom (DbDataReader dbdataReader);
//-------------------------------------------------------------------
// Retrieve field values.
String GetFieldString (DbDataReader dbDataReader, String name, String defaultValue);
Boolean GetFieldBoolean (DbDataReader dbDataReader, String name, Boolean defaultValue);
Int16 GetFieldInt16 (DbDataReader dbDataReader, String name, Int16 defaultValue);
Byte GetFieldByte (DbDataReader dbDataReader, String name, Byte defaultValue);
Int32 GetFieldInt32 (DbDataReader dbDataReader, String name, Int32 defaultValue);
Int64 GetFieldInt64 (DbDataReader dbDataReader, String name, Int64 defaultValue);
Single GetFieldSingle (DbDataReader dbDataReader, String name, Single defaultValue);
Double GetFieldDouble (DbDataReader dbDataReader, String name, Double defaultValue);
Decimal GetFieldDecimal(DbDataReader dbDataReader, String name, Decimal defaultValue);
Decimal? GetFieldDecimalNullable(DbDataReader dbDataReader, String name, Decimal? defaultValue);
DateTime GetFieldDateTime (DbDataReader dbDataReader, String name, DateTime defaultValue);
//-------------------------------------------------------------------
// Database updates via ODBC Command.
bool ExecuteInsertCommand (DbCommand dbCommand);
bool ExecuteUpdateCommand (DbCommand dbCommand);
//bool ExecuteDeleteCommand (DbCommand dbCommand);
//-------------------------------------------------------------------
}
//=======================================================================
}