home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
sibylft1.zip
/
DOC.DAT
/
DOC
/
SPCC
/
DBLAYER.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1997-04-07
|
22KB
|
441 lines
{╔══════════════════════════════════════════════════════════════════════════╗
║ ║
║ Sibyl Portable Component Classes ║
║ ║
║ Copyright (c) 1995,97 SpeedSoft Germany, All rights reserved. ║
║ ║
╚══════════════════════════════════════════════════════════════════════════╝}
UNIT DBLayer;
INTERFACE
{Rene}
USES Dos,SysUtils;
{$IFDEF OS2}
USES Os2Def,BseDos,PmWin;
{$ENDIF}
{$IFDEF Win95}
USES WinNt,WinDef,WinBase;
{$ENDIF}
USES Classes;
TYPE
HENV=LONGWORD;
HDBC=LONGWORD;
HSTMT=LONGWORD;
RETCODE=INTEGER;
SQLHENV=HENV;
SQLHDBC=HDBC;
SQLHSTMT=HSTMT;
SQLHWND=HWND;
SWORD=INTEGER;
UWORD=WORD;
SQLSMALLINT=SWORD;
SQLUSMALLINT=UWORD;
SQLUINTEGER=LONGWORD;
SQLINTEGER=LONGINT;
SQLRETURN=SQLSMALLINT;
SQLCHAR=CSTRING;
SQLPOINTER=POINTER;
CONST
SQL_SUCCESS =0;
SQL_SUCCESS_WITH_INFO =1;
SQL_NO_DATA_FOUND =100;
SQL_NEED_DATA =99;
SQL_NO_DATA =SQL_NO_DATA_FOUND;
SQL_STILL_EXECUTING =2;
SQL_ERROR =-1;
SQL_INVALID_HANDLE =-2;
SQL_COMMIT =0;
SQL_ROLLBACK =1;
/* Options for SQLSetConnectOption/SQLGetConnectOption */
CONST
SQL_ACCESS_MODE =101;
SQL_AUTOCOMMIT =102;
SQL_LOGIN_TIMEOUT =103;
SQL_OPT_TRACE =104;
SQL_OPT_TRACEFILE =105;
SQL_TRANSLATE_DLL =106;
SQL_TRANSLATE_OPTION =107;
SQL_TXN_ISOLATION =108;
SQL_CURRENT_QUALIFIER =109;
SQL_ODBC_CURSORS =110;
SQL_QUIET_MODE =111;
SQL_PACKET_SIZE =112;
SQL_CONNECT_OPT_DRVR_START =1000;
/* Options for SQLGetConnectOption/SQLSetConnectOption extensions */
SQL_WCHARTYPE =1252;
SQL_LONGDATA_COMPAT =1253;
SQL_CURRENT_SCHEMA =1254;
SQL_DB2EXPLAIN =1258;
SQL_DB2ESTIMATE =1259;
SQL_PARAMOPT_ATOMIC =1260;
SQL_STMTTXN_ISOLATION =1261;
SQL_MAXCONN =1262;
/* Options for SQLSetConnectOption, SQLSetEnvAttr */
SQL_CONNECTTYPE =1255;
SQL_SYNC_POINT =1256;
/* Options for SQL_LONGDATA_COMPAT */
SQL_LD_COMPAT_YES =1;
SQL_LD_COMPAT_NO =0;
SQL_LD_COMPAT_DEFAULT =SQL_LD_COMPAT_NO;
/* Options for SQL_PARAMOPT_ATOMIC*/
SQL_ATOMIC_YES =1;
SQL_ATOMIC_NO =0;
SQL_ATOMIC_DEFAULT =SQL_ATOMIC_YES;
/* Options for SQL_CONNECT_TYPE */
SQL_CONCURRENT_TRANS =1;
SQL_COORDINATED_TRANS =2;
SQL_CONNECTTYPE_DEFAULT =SQL_CONCURRENT_TRANS;
/* Options for SQL_SYNCPOINT */
SQL_ONEPHASE =1;
SQL_TWOPHASE =2;
SQL_SYNCPOINT_DEFAULT =SQL_ONEPHASE;
/* Options for SQL_DB2ESTIMATE */
SQL_DB2ESTIMATE_ON =1;
SQL_DB2ESTIMATE_OFF =0;
SQL_DB2ESTIMATE_DEFAULT =SQL_DB2ESTIMATE_OFF;
/* Options for SQL_DB2EXPLAIN */
SQL_DB2EXPLAIN_ON =1;
SQL_DB2EXPLAIN_OFF =0;
SQL_DB2EXPLAIN_DEFAULT =SQL_DB2EXPLAIN_OFF;
/* Options for SQL_WCHARTYPE */
SQL_WCHARTYPE_CONVERT =1;
SQL_WCHARTYPE_NOCONVERT =0;
SQL_WCHARTYPE_DEFAULT =SQL_WCHARTYPE_NOCONVERT;
/* SQL_ACCESS_MODE options */
SQL_MODE_READ_WRITE =0;
SQL_MODE_READ_ONLY =1;
SQL_MODE_DEFAULT =SQL_MODE_READ_WRITE;
/* SQL_AUTOCOMMIT options */
SQL_AUTOCOMMIT_OFF =0;
SQL_AUTOCOMMIT_ON =1;
SQL_AUTOCOMMIT_DEFAULT =SQL_AUTOCOMMIT_ON;
/* SQL_LOGIN_TIMEOUT options */
SQL_LOGIN_TIMEOUT_DEFAULT =0;
/* Column types and scopes in SQLSpecialColumns */
SQL_BEST_ROWID =1;
SQL_ROWVER =2;
SQL_SCOPE_CURROW =0;
SQL_SCOPE_TRANSACTION =1;
SQL_SCOPE_SESSION =2;
/* Defines for SQLStatistics */
SQL_INDEX_UNIQUE =0;
SQL_INDEX_ALL =1;
SQL_QUICK =0;
SQL_ENSURE =1;
/* Defines for SQLStatistics (returned in the result set) */
SQL_TABLE_STAT =0;
SQL_INDEX_CLUSTERED =1;
SQL_INDEX_HASHED =2;
SQL_INDEX_OTHER =3;
/* Defines for SQLSpecialColumns (returned in the result set) */
SQL_PC_UNKNOWN =0;
SQL_PC_NOT_PSEUDO =1;
SQL_PC_PSEUDO =2;
/* SQLDataSources "fDirection" values, also used on SQLExtendedFetch() */
/* See sqlext.h for additional SQLExtendedFetch fetch direction defines */
SQL_FETCH_NEXT =1;
SQL_FETCH_FIRST =2;
SQL_FETCH_LAST =3;
SQL_FETCH_PRIOR =4;
SQL_FETCH_ABSOLUTE =5;
SQL_FETCH_RELATIVE =6;
/* Special length values */
SQL_NULL_DATA =-1;
SQL_DATA_AT_EXEC =-2;
SQL_NTS =-3; /* NTS = Null Terminated String */
/* SQLFreeStmt option values */
SQL_CLOSE =0;
SQL_DROP =1;
SQL_UNBIND =2;
SQL_RESET_PARAMS =3;
/* SQLColAttributes defines */
SQL_COLUMN_COUNT =0;
SQL_COLUMN_NAME =1;
SQL_COLUMN_TYPE =2;
SQL_COLUMN_LENGTH =3;
SQL_COLUMN_PRECISION =4;
SQL_COLUMN_SCALE =5;
SQL_COLUMN_DISPLAY_SIZE =6;
SQL_COLUMN_NULLABLE =7;
SQL_COLUMN_UNSIGNED =8;
SQL_COLUMN_MONEY =9;
SQL_COLUMN_UPDATABLE =10;
SQL_COLUMN_AUTO_INCREMENT =11;
SQL_COLUMN_CASE_SENSITIVE =12;
SQL_COLUMN_SEARCHABLE =13;
SQL_COLUMN_TYPE_NAME =14;
SQL_COLUMN_TABLE_NAME =15;
SQL_COLUMN_OWNER_NAME =16;
SQL_COLUMN_QUALIFIER_NAME =17;
SQL_COLUMN_LABEL =18;
SQL_COLUMN_SCHEMA_NAME =SQL_COLUMN_OWNER_NAME;
SQL_COLUMN_CATALOG_NAME =SQL_COLUMN_QUALIFIER_NAME;
SQL_COLUMN_DISTINCT_TYPE =1250;
/* SQLColAttributes defines for SQL_COLUMN_UPDATABLE condition */
SQL_ATTR_READONLY = 0;
SQL_ATTR_WRITE = 1;
SQL_ATTR_READWRITE_UNKNOWN = 2;
/* Standard SQL data types */
SQL_CHAR =1;
SQL_NUMERIC =2;
SQL_DECIMAL =3;
SQL_INTEGER =4;
SQL_SMALLINT =5;
SQL_FLOAT =6;
SQL_REAL =7;
SQL_DOUBLE =8;
SQL_DATE =9;
SQL_TIME =10;
SQL_TIMESTAMP =11;
SQL_VARCHAR =12;
/* SQL extended data types */
SQL_LONGVARCHAR =-1;
SQL_BINARY =-2;
SQL_VARBINARY =-3;
SQL_LONGVARBINARY =-4;
SQL_BIGINT =-5; /* Not supported */
SQL_TINYINT =-6; /* Not supported */
SQL_BIT =-7; /* Not supported */
SQL_GRAPHIC =-95;
SQL_VARGRAPHIC =-96;
SQL_LONGVARGRAPHIC =-97;
SQL_BLOB =-98;
SQL_CLOB =-99;
SQL_DBCLOB =-350;
SQL_SIGNED_OFFSET =-20;
SQL_UNSIGNED_OFFSET =-22;
/* C data type to SQL data type mapping */
SQL_C_CHAR =SQL_CHAR; /* CHAR, VARCHAR, DECIMAL, NUMERIC */
SQL_C_LONG =SQL_INTEGER; /* INTEGER */
SQL_C_SHORT =SQL_SMALLINT; /* SMALLINT */
SQL_C_FLOAT =SQL_REAL; /* REAL */
SQL_C_DOUBLE =SQL_DOUBLE; /* FLOAT, DOUBLE */
SQL_C_DATE =SQL_DATE; /* DATE */
SQL_C_TIME =SQL_TIME; /* TIME */
SQL_C_TIMESTAMP =SQL_TIMESTAMP; /* TIMESTAMP */
SQL_C_BINARY =SQL_BINARY; /* BINARY, VARGINARY */
SQL_C_BIT =SQL_BIT;
SQL_C_TINYINT =SQL_TINYINT;
SQL_C_DBCHAR =SQL_DBCLOB;
SQL_C_DEFAULT =99;
/* For ODBC compatibility only */
SQL_C_SLONG =SQL_C_LONG+SQL_SIGNED_OFFSET;
SQL_C_SSHORT =SQL_C_SHORT+SQL_SIGNED_OFFSET;
SQL_C_STINYINT =SQL_C_TINYINT+SQL_SIGNED_OFFSET;
SQL_C_ULONG =SQL_C_LONG+SQL_UNSIGNED_OFFSET;
SQL_C_USHORT =SQL_C_SHORT+SQL_UNSIGNED_OFFSET;
SQL_C_UTINYINT =SQL_C_TINYINT+SQL_UNSIGNED_OFFSET;
/* generally useful constants */
SQL_SQLSTATE_SIZE = 5; /* size of SQLSTATE, not including
null terminating byte */
SQL_MAX_MESSAGE_LENGTH =1024; /* message buffer size */
SQL_MAX_DSN_LENGTH =32; /* maximum data source name size */
SQL_MAX_ID_LENGTH =18; /* maximum identifier name size, */
//SQLSetStmtOption values
SQL_QUERY_TIMEOUT =0;
SQL_MAX_ROWS =1;
SQL_NOSCAN =2;
SQL_MAX_LENGTH =3;
SQL_ASYNC_ENABLE =4;
SQL_BIND_TYPE =5;
SQL_CURSOR_TYPE =6;
SQL_CONCURRENCY =7;
SQL_KEYSET_SIZE =8;
SQL_ROWSET_SIZE =9;
SQL_SIMULATE_CURSOR =10;
SQL_RETRIEVE_DATA =11;
SQL_USE_BOOKMARKS =12;
SQL_GET_BOOKMARK =13;
SQL_ROW_NUMBER =14;
//SQLScrollOptions
SQL_SO_FORWARD_ONLY = 1;
SQL_SO_KEYSET_DRIVEN = 2;
SQL_SO_DYNAMIC = 4;
SQL_SO_MIXED = 8;
SQL_SO_STATIC = 16;
//CursorType
SQL_CURSOR_FORWARD_ONLY =0;
SQL_CURSOR_KEYSET_DRIVEN =1;
SQL_CURSOR_DYNAMIC =2;
SQL_CURSOR_STATIC =3;
TYPE
TDBProcs=RECORD
ModHandle:LONGWORD; //Module handle
ahenv:SQLHENV; //Environment handle
ahdbc:SQLHDBC; //database handle
ahstmt:SQLHSTMT; //statement handle
DataBase:CSTRING; //Database name
AliasName:STRING; //Server alias name
uid:CSTRING; //user id
pwd:CSTRING; //pasword
Assigned:BOOLEAN; //true if functions are valid
SQLAllocEnv:FUNCTION(VAR phenv:SQLHENV):SQLRETURN;APIENTRY;
SQLAllocConnect:FUNCTION(ahenv:SQLHENV;VAR phdbc:SQLHDBC):SQLRETURN;APIENTRY;
SQLConnect:FUNCTION(ahdbc:SQLHDBC;CONST szDSN:SQLCHAR;
cbDSN:LONGINT;CONST szUID:SQLCHAR;
cbUID:LONGINT;CONST szAuthString:SQLCHAR;
cbAuthString:LONGINT):SQLRETURN;APIENTRY;
SQLDriverConnect:FUNCTION(ahdbc:SQLHDBC;hWindow:SQLHWND;
CONST szConnStrIn:SQLCHAR;cbConnStrIn:LONGINT;
VAR szConnStrOut:SQLCHAR;cbConnStrOutMax:LONGINT;
VAR pcbConnStrOut:SQLSMALLINT;
fDriverCompletion:LONGWORD):SQLRETURN;APIENTRY;
SQLDataSources:FUNCTION(ahenv:SQLHENV;fDirection:LONGWORD;
VAR szDSN:SQLCHAR;cbDSNMax:LONGINT;
VAR pcbDSN:SQLSMALLINT;
VAR szDescription:SQLCHAR;cbDescriptionMax:LONGINT;
VAR pcbDescription:SQLSMALLINT):SQLRETURN;APIENTRY;
SQLGetInfo:FUNCTION(ahdbc:SQLHDBC;fInfoType:LONGWORD;VAR rgbInfoValue;cbInfoValueMax:LONGINT;
VAR pcbInfoValue:SQLSMALLINT):SQLRETURN;APIENTRY;
SQLGetFunctions:FUNCTION(ahdbc:SQLHDBC;fFunction:LONGWORD;VAR pfExists:SQLUSMALLINT):SQLRETURN;APIENTRY;
SQLGetTypeInfo:FUNCTION(ahstmt:SQLHSTMT;fSQLType:LONGINT):SQLRETURN;APIENTRY;
SQLSetConnectOption:FUNCTION(ahdbc:SQLHDBC;fOption:LONGWORD;vParam:SQLUINTEGER):SQLRETURN;APIENTRY;
SQLGetConnectOption:FUNCTION(ahdbc:SQLHDBC;fOption:LONGWORD;VAR pvParam):SQLRETURN;APIENTRY;
SQLSetStmtOption:FUNCTION(ahstmt:SQLHSTMT;fOption:LONGWORD;vParam:SQLUINTEGER):SQLRETURN;APIENTRY;
SQLGetStmtOption:FUNCTION(ahstmt:SQLHSTMT;fOption:LONGWORD;VAR pvParam):SQLRETURN;APIENTRY;
SQLAllocStmt:FUNCTION(ahdbc:SQLHDBC;VAR phstmt:SQLHSTMT):SQLRETURN;APIENTRY;
SQLPrepare:FUNCTION(ahstmt:SQLHSTMT;CONST szSqlStr:SQLCHAR;cbSqlStr:SQLINTEGER):SQLRETURN;APIENTRY;
SQLBindParameter:FUNCTION(ahstmt:SQLHSTMT;ipar:LONGWORD;fParamType:LONGINT;
fCType:LONGINT;fSqlType:LONGINT;cbParamDef:SQLUINTEGER;
ibScale:LONGINT;VAR rgbValue;cbValueMax:SQLINTEGER;
VAR pcbValue:SQLINTEGER):SQLRETURN;APIENTRY;
SQLSetParam:FUNCTION(ahstmt:SQLHSTMT;ipar:LONGWORD;fCType:LONGINT;fSqlType:LONGINT;
cbParamDef:SQLUINTEGER;ibScale:LONGINT;VAR rgbValue;
VAR pcbValue:SQLINTEGER):SQLRETURN;APIENTRY;
SQLParamOptions:FUNCTION(ahstmt:SQLHSTMT;crow:SQLUINTEGER;VAR pirow:SQLUINTEGER):SQLRETURN;APIENTRY;
SQLGetCursorName:FUNCTION(ahstmt:SQLHSTMT;VAR szCursor:SQLCHAR;cbCursorMax:LONGINT;
VAR pcbCursor:SQLSMALLINT):SQLRETURN;APIENTRY;
SQLSetCursorName:FUNCTION(ahstmt:SQLHSTMT;CONST szCursor:SQLCHAR;cbCursor:LONGINT):SQLRETURN;APIENTRY;
SQLExecute:FUNCTION(ahstmt:SQLHSTMT):SQLRETURN;APIENTRY;
SQLExecDirect:FUNCTION(ahstmt:SQLHSTMT;CONST szSQLStr:SQLCHAR;cbSqlStr:SQLINTEGER):SQLRETURN;APIENTRY;
SQLNativeSql:FUNCTION(ahdbc:SQLHDBC;CONST szSqlStrIn:SQLCHAR;cbSqlStrIn:SQLINTEGER;
VAR szSqlStr:SQLCHAR;cbSqlStrMax:SQLINTEGER;VAR pcbSqlStr:SQLINTEGER):SQLRETURN;APIENTRY;
SQLNumParams:FUNCTION(ahstmt:SQLHSTMT;VAR pcpar:SQLSMALLINT):SQLRETURN;APIENTRY;
SQLParamData:FUNCTION(ahstmt:SQLHSTMT;VAR prgbValue):SQLRETURN;APIENTRY;
SQLPutData:FUNCTION(ahstmt:SQLHSTMT;VAR rgbValue;VAR cbValue:SQLINTEGER):SQLRETURN;APIENTRY;
SQLRowCount:FUNCTION(ahstmt:SQLHSTMT;VAR pcrow:SQLINTEGER):SQLRETURN;APIENTRY;
SQLNumResultCols:FUNCTION(ahstmt:SQLHSTMT;VAR pccol:SQLSMALLINT):SQLRETURN;APIENTRY;
SQLDescribeCol:FUNCTION(ahstmt:SQLHSTMT;icol:LONGWORD;VAR szColName:SQLCHAR;
cbColNameMax:LONGINT;VAR pcbColName:SQLSMALLINT;
VAR pfSqlType:SQLSMALLINT;VAR pcbColDef:SQLUINTEGER;
VAR pibScale:SQLSMALLINT;VAR pfNullable:SQLSMALLINT):SQLRETURN;APIENTRY;
SQLColAttributes:FUNCTION(ahstmt:SQLHSTMT;icol:LONGWORD;fDescType:LONGWORD;
VAR rgbDesc:SQLCHAR;cbDescMax:LONGINT;
VAR pcbDesc:SQLSMALLINT;VAR pfDesc:SQLINTEGER):SQLRETURN;APIENTRY;
SQLBindCol:FUNCTION(ahstmt:SQLHSTMT;icol:LONGWORD;fCType:LONGINT;VAR rgbValue;
cbValueMax:SQLINTEGER;VAR pcbValue:SQLINTEGER):SQLRETURN;APIENTRY;
SQLFetch:FUNCTION(ahstmt:SQLHSTMT):SQLRETURN;APIENTRY;
SQLExtendedFetch:FUNCTION(ahstmt:SQLHSTMT;fFetchType:LONGWORD;irow:SQLINTEGER;
VAR pcrow:SQLUINTEGER;VAR rgfRowStatus):SQLRETURN;APIENTRY;
SQLGetData:FUNCTION(ahstmt:SQLHSTMT;icol:LONGWORD;fCType:LONGINT;
VAR rgbValue;cbValueMax:SQLINTEGER;VAR pcbValue:SQLINTEGER):SQLRETURN;APIENTRY;
SQLMoreResults:FUNCTION(ahstmt:SQLHSTMT):SQLRETURN;APIENTRY;
SQLError:FUNCTION(ahenv:SQLHENV;ahdbc:SQLHDBC;ahstmt:SQLHSTMT;VAR szSqlState:SQLCHAR;
VAR pfNativeError:SQLINTEGER;VAR szErrorMsg;
cbErrorMsgMax:LONGINT;VAR pcbErrorMsg:SQLSMALLINT):SQLRETURN;APIENTRY;
SQLColumns:FUNCTION(ahstmt:SQLHSTMT;CONST szCatalogName:SQLCHAR;cbCatalogName:LONGINT;
CONST szSchemaName:SQLCHAR;cbSchemaName:LONGINT;
CONST szTableName:SQLCHAR;cbTableName:LONGINT;
CONST szColumnName:SQLCHAR;cbColumnName:LONGINT):SQLRETURN;APIENTRY;
SQLForeignKeys:FUNCTION(ahstmt:SQLHSTMT;CONST szPkCatalogName:SQLCHAR;cbPkCatalogName:LONGINT;
CONST szPkSchemaName:SQLCHAR;cbPkSchemaName:LONGINT;
CONST szPkTableName:SQLCHAR;cbPkTableName:LONGINT;
CONST szFkCatalogName:SQLCHAR;cbFkCatalogName:LONGINT;
CONST szFkSchemaName:SQLCHAR;cbFkSchemaName:LONGINT;
CONST szFkTableName:SQLCHAR;cbFkTableName:LONGINT):SQLRETURN;APIENTRY;
SQLPrimaryKeys:FUNCTION(ahstmt:SQLHSTMT;CONST szCatalogName:SQLCHAR;cbCatalogName:LONGINT;
CONST szSchemaName:SQLCHAR;cbSchemaName:LONGINT;
CONST szTableName:SQLCHAR;cbTableName:LONGINT):SQLRETURN;APIENTRY;
SQLProcedureColumns:FUNCTION(ahstmt:SQLHSTMT;CONST szProcCatalog:SQLCHAR;cbProcCatalog:LONGINT;
CONST szProcSchema:SQLCHAR;cbProcSchema:LONGINT;
CONST szProcName:SQLCHAR;cbProcName:LONGINT;
CONST szColumnName:SQLCHAR;cbColumnName:LONGINT):SQLRETURN;APIENTRY;
SQLProcedures:FUNCTION(ahstmt:SQLHSTMT;CONST szProcCatalog:SQLCHAR;cbProcCatalog:LONGINT;
CONST szProcSchema:SQLCHAR;cbProcSchema:LONGINT;
CONST szProcName:SQLCHAR;cbProcName:LONGINT):SQLRETURN;APIENTRY;
SQLSpecialColumns:FUNCTION(ahstmt:SQLHSTMT;fColType:LONGWORD;
CONST szCatalogName:SQLCHAR;cbCatalogName:LONGINT;
CONST szSchemaName:SQLCHAR;cbSchemaName:LONGINT;
CONST szTableName:SQLCHAR;cbTableName:LONGINT;
fScope:LONGWORD;fNullable:LONGWORD):SQLRETURN;APIENTRY;
SQLStatistics:FUNCTION(ahstmt:SQLHSTMT;CONST szCatalogName:SQLCHAR;cbCatalogName:LONGINT;
CONST szSchemaName:SQLCHAR;cbSchemaName:LONGINT;
CONST szTableName:SQLCHAR;cbTableName:LONGINT;
fUnique:LONGWORD;fAccuracy:LONGWORD):SQLRETURN;APIENTRY;
SQLTablePrivileges:FUNCTION(ahstmt:SQLHSTMT;CONST szTableQualifier:SQLCHAR;cbTableQualifier:LONGINT;
CONST szSchemaName:SQLCHAR;cbSchemaName:LONGINT;
CONST szTableName:SQLCHAR;cbTableName:LONGINT):SQLRETURN;APIENTRY;
SQLTables:FUNCTION(ahstmt:SQLHSTMT;CONST szCatalogName:SQLCHAR;cbCatalogName:LONGINT;
CONST szSchemaName:SQLCHAR;cbSchemaName:LONGINT;
CONST szTableName:SQLCHAR;cbTableName:LONGINT;
CONST szTableType:SQLCHAR;cbTableType:LONGINT):SQLRETURN;APIENTRY;
SQLFreeStmt:FUNCTION(ahstmt:SQLHSTMT;fOption:LONGWORD):SQLRETURN;APIENTRY;
SQLCancel:FUNCTION(ahstmt:SQLHSTMT):SQLRETURN;APIENTRY;
SQLTransact:FUNCTION(ahenv:SQLHENV;ahdbc:SQLHDBC;fType:LONGWORD):SQLRETURN;APIENTRY;
SQLDisconnect:FUNCTION(ahdbc:SQLHDBC):SQLRETURN;APIENTRY;
SQLFreeConnect:FUNCTION(ahdbc:SQLHDBC):SQLRETURN;APIENTRY;
SQLFreeEnv:FUNCTION(ahenv:SQLHENV):SQLRETURN;APIENTRY;
END;
TYPE
EProcAddrError=CLASS(Exception);
FUNCTION FillDbProcs(VAR DbProcs:TDBProcs):BOOLEAN;
PROCEDURE FreeDbProcs(VAR DbProcs:TDBProcs);
FUNCTION SQLErrorText(VAR DbProcs:TDBProcs;ahenv:SQLHENV;ahdbc:SQLHDBC;ahstmt:SQLHSTMT):STRING;
FUNCTION GetDBServersCount:LONGINT;
PROCEDURE GetDBServer(Index:LONGINT;VAR AliasName,DllName:STRING);
PROCEDURE GetDBServerFromAlias(CONST Alias:STRING;VAR DllName:STRING);
PROCEDURE AddServerAlias(CONST AliasName,DllName:STRING);
IMPLEMENTATION