Unit SDEngine

*****************************************************} { } { SQLDirect Component Library } { for Delphi & Delphi 2 } { ( SQLBase Ver.6 ) } { Copyright (c) 1995,98 by Yuri Sheino } { } { Author: Yuri Sheino } { e-mail: sheino@cit.org.by } { WWW: www.cit.org.by/users/sheino } { www.cit.org.by/users/sheino/sqldir.htm } { } { Free to use and redistribute with applications. } { You can not: } { - distribute library source code without } { permission from author; } { - distribute modified versions of the Library, } { in whole or in part; } { - rent or lease the Library. } { No warranty is given by the author, expressed } { or implied. } { } {

Classes

ESDEngineError - Field Rights (computed)
TSDDatabase -
TSDDataSet -
TSDField -
TSDFieldClass - TSDFieldDef
TSDFieldDef -
TSDFieldDefs - TSDFieldDefs
TSDSession - TSDSession

Functions

CreateConnectString -
SDEngineError -
SqlAppError -
SqlAppErrorFmt -
SqlDateTimeToStr - Converting from SQLBase internal DATETIME format to string
SqlYieldProc -
StrToSqlDateTime - Convert from string to SQLBase internal DATETIME format

Types

hSqlCursor
PSqlBufferList
pSqlFldDesc
SqlFldDesc
SqlFldName
SqlFldRights
SqlFldVchk
SqlName
SqlSpName
SqlTblName
SqlUserName
TDSFlags
TSDDataEvent
TSDDataSetNotifyEvent
TSDDataSetState
TSDFieldGetTextEvent
TSDFieldNotifyEvent
TSDFieldRef
TSDFieldSetTextEvent
TSDFieldType
TSDLoginEvent
TSDTransIsolation
TSqlBufferList
TSqlFieldName
TSqlLoginStr
TSqlTableName

Constants

CURDISCONNECT
dsfExecSQL
dsfFieldList
dsfIndexList
dsfOpened
dsfPrepared
dsfQuery
dsfStoredProc
dsfTable
dsSqlEditModes
dsSqlMaxBufferCount
ExtDataTypeMap
PrgDataTypeMap
SQLMAXFLDNAMELEN
SQLMAXFULLTBLNAMELEN
SQLMAXNAMELEN
SQLMAXSPFULLNAMELEN
SQLMAXSPNAMELEN
SQLMAXTBLNAMELEN
SQLMAXUSERNAMELEN

Variables

Session


Functions


function CreateConnectString(const database, username, password: string): PChar;


function SDEngineError(Rcd: SqlTRcd): ESDEngineError;


function SqlAppError(Ident: Word): ESqlAppError;


function SqlAppErrorFmt(Ident: Word; const Args: array of const): ESqlAppError;


function SqlDateTimeToStr(ADataType: TSDFieldType; ADateTimePtr: PChar; ADateTimeSize: Integer): string;

Converting from SQLBase internal DATETIME format to string

function SqlYieldProc: WordBool;


procedure StrToSqlDateTime(const Value: string; ADataType: TSDFieldType; ADateTimePtr: PChar; ADateTimeSize: Integer);

Convert from string to SQLBase internal DATETIME format

Types


hSqlCursor		= SqlTCurPtr

PSqlBufferList = ^TSqlBufferList
TSDDataSet
pSqlFldDesc = ^SqlFldDesc
Dont know at this time
SqlFldDesc = record
iFldNum : Word;
szName : SqlFldName;
iFldType : Word;
iSubType : Word;
iUnits1 : Integer;
iUnits2 : Integer;
iOffset : Word;
iLen : Word;
iNullOffset : Word;
efldvVchk : SqlFldVchk;
efldrRights : SqlFldRights;
end;

SqlFldName    = array [0..SQLMAXFLDNAMELEN] of Char;
holds a name
SqlFldRights = (                      { Field Rights }
    fldrREADWRITE,                   { Field can be Read/Written }
    fldrREADONLY,                    { Field is Read only }
    fldrNONE,                        { No Rights on this field }
    fldrUNKNOWN                      { Dont know at this time }
  );
Dont know at this time
SqlFldVchk = (                        { Field Val Check type }
    fldvNOCHECKS,                    { Does not have explicit val checks }
    fldvHASCHECKS,                   { One or more val checks on the field }
    fldvUNKNOWN                      { Dont know at this time }
  );

SqlName       = array [0..SQLMAXNAMELEN] of Char;

SqlSpName     = array [0..SQLMAXSPNAMELEN] of Char;
holds a table name
SqlTblName    = array [0..SQLMAXFULLTBLNAMELEN] of Char;
holds a field name
SqlUserName   = array [0..SQLMAXUSERNAMELEN] of Char;
holds a stored procedure name
TDSFlags = set of 0..15

TSDDataEvent = (deFieldChange, deRecordChange, deDataSetChange,
    deDataSetScroll, deLayoutChange, deUpdateRecord, deUpdateState,
    deCheckBrowseMode, dePropertyChange, deFieldListChange,
    deFocusControl);

TSDDataSetNotifyEvent = procedure(DataSet: TSDDataSet) of object

TSDDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert,
    dsSetKey, dsCalcFields);

TSDFieldGetTextEvent = procedure(Sender: TSDField; var Text: string;
    DisplayText: Boolean) of object

TSDFieldNotifyEvent = procedure(Sender: TSDField) of object
TSDField
TSDFieldRef = ^TSDField

TSDFieldSetTextEvent = procedure(Sender: TSDField; const Text: string) of object

TSDFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord,
    ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,
    ftBytes, ftVarBytes, ftBlob, ftMemo, ftGraphic);

TSDLoginEvent = procedure(Database: TSDDatabase; LoginParams: TStrings) of object

TSDTransIsolation = (tiDirtyRead, tiReadCommitted, tiRepeatableRead);
TSDDatabase
TSqlBufferList = array[0..dsSqlMaxBufferCount - 1] of PChar;

TSqlFieldName = string[SQLMAXFLDNAMELEN]

TSqlLoginStr 		= string[8]

TSqlTableName	= string[SQLMAXFULLTBLNAMELEN]
holds a user name

Constants

CURDISCONNECT = 0

Max stored procedure full name

dsfExecSQL = 2

dsfFieldList = 4

dsfIndexList = 5

dsfOpened = 0

TSDDataSet flags

dsfPrepared = 1

dsfQuery = 6

dsfStoredProc = 7

dsfTable = 3

dsSqlEditModes = [dsEdit, dsInsert, dsSetKey]

dsSqlMaxBufferCount = 1024

TSDDataSet maximum number of record buffers

ExtDataTypeMap = ( ftUnknown, ftInteger, ftSmallInt, ftFloat, ftString, ftString, ftBlob, ftCurrency, ftDate, ftTime, ftDateTime, ftUnknown, ftUnknown, ftUnknown, ftUnknown, ftUnknown, ftUnknown, ftUnknown, ftBlob, ftBoolean, ftUnknown, ftUnknown )

Converting from External Data Type to TSDFieldType

PrgDataTypeMap = ( 0, SqlPBuf, SqlPSsh, SqlPSlo, SqlPUsh, SqlPUsh, SqlPFlt, 0, 0, SqlPDte, SqlPTim, SqlPDat, 0, 0, SqlPLbi, 0, 0 )

Converting from TSDFieldType to Program Data Type

SQLMAXFLDNAMELEN = 100

Name limit (table, field etc)

SQLMAXFULLTBLNAMELEN = SQLMAXTBLNAMELEN + 1 + SQLMAXUSERNAMELEN

Max table name length

SQLMAXNAMELEN = 18

SQLMAXSPFULLNAMELEN = 28

Max stored procedure name length

SQLMAXSPNAMELEN = 18

SQLMAXTBLNAMELEN = 18

Max. field name for SqlFldDesc structure

SQLMAXUSERNAMELEN = 8

Constants

Variables

Session : TSDSession