00001 {*********************************************************}
00002 { }
00003 { Zeos Database Objects }
00004 { Plain interface to db2cli.dll }
00005 { }
00006 { Originally written by Sergey Seroukhov }
00007 { }
00008 {*********************************************************}
00009
00010 {@********************************************************}
00011 { Copyright (c) 1999-2006 Zeos Development Group }
00012 { }
00013 { License Agreement: }
00014 { }
00015 { This library is distributed in the hope that it will be }
00016 { useful, but WITHOUT ANY WARRANTY; without even the }
00017 { implied warranty of MERCHANTABILITY or FITNESS FOR }
00018 { A PARTICULAR PURPOSE. See the GNU Lesser General }
00019 { Public License for more details. }
00020 { }
00021 { The source code of the ZEOS Libraries and packages are }
00022 { distributed under the Library GNU General Public }
00023 { License (see the file COPYING / COPYING.ZEOS) }
00024 { with the following modification: }
00025 { As a special exception, the copyright holders of this }
00026 { library give you permission to link this library with }
00027 { independent modules to produce an executable, }
00028 { regardless of the license terms of these independent }
00029 { modules, and to copy and distribute the resulting }
00030 { executable under terms of your choice, provided that }
00031 { you also meet, for each linked independent module, }
00032 { the terms and conditions of the license of that module. }
00033 { An independent module is a module which is not derived }
00034 { from or based on this library. If you modify this }
00035 { library, you may extend this exception to your version }
00036 { of the library, but you are not obligated to do so. }
00037 { If you do not wish to do so, delete this exception }
00038 { statement from your version. }
00039 { }
00040 { }
00041 { The project web site is located on: }
00042 { http:
00043 { http:
00044 { svn:
00045 { }
00046 { http:
00047 { http:
00048 { }
00049 { }
00050 { }
00051 { Zeos Development Group. }
00052 {********************************************************@}
00053
00054 unit ZPlainDb2;
00055
00056 interface
00057
00058 {$I ZPlain.inc}
00059
00060 uses
00061 ZPlainDb2Driver,
00062 {$IFNDEF UNIX}
00063 Windows,
00064 {$ENDIF}
00065 ZPlainLoader;
00066
00067 {J+}
00068
00069 const
00070 WINDOWS_DLL_LOCATION = 'db2cli.dll';
00071 LINUX_DLL_LOCATION = 'db2cli.so';
00072
00073 type
00074 TSQLAllocConnect = function(henv: SQLHENV; phdbc: PSQLHDBC): SQLRETURN; stdcall;
00075
00076 TSQLAllocEnv = function(phenv: PSQLHENV): SQLRETURN; stdcall;
00077
00078 TSQLAllocStmt = function(hdbc: SQLHDBC; phstmt: PSQLHSTMT): SQLRETURN; stdcall;
00079
00080 TSQLAllocHandle = function(fHandleType: SQLSMALLINT; hInput: SQLHANDLE;
00081 phOutput: PSQLHANDLE): SQLRETURN; stdcall;
00082
00083 TSQLBindCol = function(hstmt: SQLHSTMT; icol: SQLUSMALLINT;
00084 fCType: SQLSMALLINT; rgbValue: SQLPOINTER; cbValueMax: SQLINTEGER;
00085 pcbValue: PSQLINTEGER): SQLRETURN; stdcall;
00086
00087 TSQLCancel = function(hstmt: SQLHSTMT): SQLRETURN; stdcall;
00088
00089 TSQLColAttribute = function(hstmt: SQLHSTMT; icol: SQLUSMALLINT;
00090 fDescType: SQLUSMALLINT; rgbDesc: SQLPOINTER; cbDescMax: SQLSMALLINT;
00091 pcbDesc: PSQLSMALLINT; pfDesc: SQLPOINTER): SQLRETURN; stdcall;
00092
00093 TSQLConnect = function(hdbc: SQLHDBC; szDSN: PSQLCHAR; cbDSN: SQLSMALLINT;
00094 szUID: PSQLCHAR; cbUID: SQLSMALLINT; szAuthStr: PSQLCHAR;
00095 cbAuthStr: SQLSMALLINT): SQLRETURN; stdcall;
00096
00097 TSQLDescribeCol = function(hstmt: SQLHSTMT; icol: SQLUSMALLINT;
00098 szColName: PSQLCHAR; cbColNameMax: SQLSMALLINT; pcbColName: PSQLSMALLINT;
00099 pfSqlType: PSQLSMALLINT; pcbColDef: PSQLUINTEGER; pibScale: PSQLSMALLINT;
00100 pfNullable: PSQLSMALLINT): SQLRETURN; stdcall;
00101
00102 TSQLDisconnect = function(hdbc: SQLHDBC): SQLRETURN; stdcall;
00103
00104 TSQLError = function(henv: SQLHENV; hdbc: SQLHDBC; hstmt: SQLHSTMT;
00105 szSqlState: PSQLCHAR; pfNativeError: PSQLINTEGER; szErrorMsg: PSQLCHAR;
00106 cbErrorMsgMax: SQLSMALLINT; pcbErrorMsg: PSQLSMALLINT): SQLRETURN; stdcall;
00107
00108 TSQLExecDirect = function(hstmt: SQLHSTMT; szSqlStr: PSQLCHAR;
00109 cbSqlStr: SQLINTEGER): SQLRETURN; stdcall;
00110
00111 TSQLExecute = function(hstmt: SQLHSTMT): SQLRETURN; stdcall;
00112
00113 TSQLFetch = function(hstmt: SQLHSTMT): SQLRETURN; stdcall;
00114
00115 TSQLFreeConnect = function(hdbc: SQLHDBC): SQLRETURN; stdcall;
00116
00117 TSQLFreeEnv = function(henv: SQLHENV): SQLRETURN; stdcall;
00118
00119 TSQLFreeStmt = function(hstmt: SQLHSTMT; fOption: SQLUSMALLINT): SQLRETURN;
00120 stdcall;
00121
00122 TSQLCloseCursor = function(hStmt: SQLHSTMT): SQLRETURN; stdcall;
00123
00124 TSQLGetCursorName = function(hstmt: SQLHSTMT; szCursor: PSQLCHAR;
00125 cbCursorMax: SQLSMALLINT; pcbCursor: PSQLSMALLINT): SQLRETURN; stdcall;
00126
00127 TSQLGetData = function(hstmt: SQLHSTMT; icol: SQLUSMALLINT;
00128 fCType: SQLSMALLINT; rgbValue: SQLPOINTER; cbValueMax: SQLINTEGER;
00129 pcbValue: PSQLINTEGER): SQLRETURN; stdcall;
00130
00131 TSQLNumResultCols = function(hstmt: SQLHSTMT; pccol: PSQLSMALLINT): SQLRETURN;
00132 stdcall;
00133
00134 TSQLPrepare = function(hstmt: SQLHSTMT; szSqlStr: PSQLCHAR;
00135 cbSqlStr: SQLINTEGER): SQLRETURN; stdcall;
00136
00137 TSQLRowCount = function(hstmt: SQLHSTMT; pcrow: PSQLINTEGER): SQLRETURN; stdcall;
00138
00139 TSQLSetCursorName = function(hstmt: SQLHSTMT; szCursor: PSQLCHAR;
00140 cbCursor: SQLSMALLINT): SQLRETURN; stdcall;
00141
00142 TSQLSetParam = function(hstmt: SQLHSTMT; ipar: SQLUSMALLINT;
00143 fCType: SQLSMALLINT; fSqlType: SQLSMALLINT; cbParamDef: SQLUINTEGER;
00144 ibScale: SQLSMALLINT; rgbValue: SQLPOINTER; pcbValue: PSQLINTEGER):
00145 SQLRETURN; stdcall;
00146
00147 TSQLTransact = function(henv: SQLHENV; hdbc: SQLHDBC; fType: SQLUSMALLINT):
00148 SQLRETURN; stdcall;
00149
00150 TSQLEndTran = function(fHandleType: SQLSMALLINT; hHandle: SQLHANDLE;
00151 fType: SQLSMALLINT): SQLRETURN; stdcall;
00152
00153 TSQLFreeHandle = function(fHandleType: SQLSMALLINT; hHandle: SQLHANDLE):
00154 SQLRETURN; stdcall;
00155
00156 TSQLGetDiagRec = function(fHandleType: SQLSMALLINT; hHandle: SQLHANDLE;
00157 iRecNumber: SQLSMALLINT; pszSqlState: PSQLCHAR; pfNativeError: PSQLINTEGER;
00158 pszErrorMsg: PSQLCHAR; cbErrorMsgMax: SQLSMALLINT;
00159 pcbErrorMsg: PSQLSMALLINT): SQLRETURN; stdcall;
00160
00161 TSQLGetDiagField = function(fHandleType: SQLSMALLINT; hHandle: SQLHANDLE;
00162 iRecNumber: SQLSMALLINT; fDiagIdentifier: SQLSMALLINT; pDiagInfo: SQLPOINTER;
00163 cbDiagInfoMax: SQLSMALLINT; pcbDiagInfo: PSQLSMALLINT): SQLRETURN; stdcall;
00164
00165 TSQLCopyDesc = function(hDescSource: SQLHDESC; hDescTarget: SQLHDESC):
00166 SQLRETURN; stdcall;
00167
00168 TSQLGetDescField = function(DescriptorHandle: SQLHDESC;
00169 RecNumber: SQLSMALLINT; FieldIdentifier: SQLSMALLINT; Value: SQLPOINTER;
00170 BufferLength: SQLINTEGER; StringLength: PSQLINTEGER): SQLRETURN; stdcall;
00171
00172 TSQLGetDescRec = function(DescriptorHandle: SQLHDESC; RecNumber: SQLSMALLINT;
00173 Name: PSQLCHAR; BufferLength: SQLSMALLINT; StringLength: PSQLSMALLINT;
00174 _Type: PSQLSMALLINT; SubType: PSQLSMALLINT; Length: PSQLINTEGER;
00175 Precision: PSQLSMALLINT; Scale: PSQLSMALLINT; Nullable: PSQLSMALLINT):
00176 SQLRETURN; stdcall;
00177
00178 TSQLSetDescField = function(DescriptorHandle: SQLHDESC; RecNumber: SQLSMALLINT;
00179 FieldIdentifier: SQLSMALLINT; Value: SQLPOINTER; BufferLength: SQLINTEGER):
00180 SQLRETURN; stdcall;
00181
00182 TSQLSetDescRec = function(DescriptorHandle: SQLHDESC; RecNumber: SQLSMALLINT;
00183 _Type: SQLSMALLINT; SubType: SQLSMALLINT; Length: SQLINTEGER;
00184 Precision: SQLSMALLINT; Scale: SQLSMALLINT; Data: SQLPOINTER;
00185 StringLength: PSQLINTEGER; Indicator: PSQLINTEGER): SQLRETURN; stdcall;
00186
00187 { New added functions }
00188
00189 TSQLSetConnectAttr = function(hdbc: SQLHDBC; fOption: SQLINTEGER;
00190 pvParam: SQLPOINTER; fStrLen: SQLINTEGER): SQLRETURN; stdcall;
00191
00192 TSQLSetConnectOption = function(hdbc: SQLHDBC; fOption: SQLUSMALLINT;
00193 vParam: SQLUINTEGER): SQLRETURN; stdcall;
00194
00195 TSQLSetStmtAttr = function(hstmt: SQLHSTMT; fOption: SQLINTEGER;
00196 pvParam: SQLPOINTER; fStrLen: SQLINTEGER): SQLRETURN; stdcall;
00197
00198 TSQLSetStmtOption = function(hstmt: SQLHSTMT; fOption: SQLUSMALLINT;
00199 vParam: SQLUINTEGER): SQLRETURN; stdcall;
00200
00201 TSQLGetSubString = function(hstmt: SQLHSTMT; LocatorCType: SQLSMALLINT;
00202 SourceLocator: SQLINTEGER; FromPosition: SQLUINTEGER;
00203 ForLength: SQLUINTEGER; TargetCType: SQLSMALLINT; rgbValue: SQLPOINTER;
00204 cbValueMax: SQLINTEGER; StringLength: PSQLINTEGER;
00205 IndicatorValue: PSQLINTEGER): SQLRETURN; stdcall;
00206
00207 TSQLGetLength = function(hstmt: SQLHSTMT; LocatorCType: SQLSMALLINT;
00208 Locator: SQLINTEGER; StringLength: PSQLINTEGER;
00209 IndicatorValue: PSQLINTEGER): SQLRETURN; stdcall;
00210
00211 TSQLGetPosition = function(hstmt: SQLHSTMT; LocatorCType: SQLSMALLINT;
00212 SourceLocator: SQLINTEGER; SearchLocator: SQLINTEGER; SearchLiteral: PSQLCHAR;
00213 SearchLiteralLength: SQLINTEGER; FromPosition: SQLUINTEGER;
00214 LocatedAt: PSQLUINTEGER; IndicatorValue: PSQLINTEGER): SQLRETURN; stdcall;
00215
00216 TSQLBindParameter = function(hstmt: SQLHSTMT; ipar: SQLUSMALLINT;
00217 fParamType: SQLSMALLINT; fCType: SQLSMALLINT; fSqlType: SQLSMALLINT;
00218 cbColDef: SQLUINTEGER; ibScale: SQLSMALLINT; rgbValue: SQLPOINTER;
00219 cbValueMax: SQLINTEGER; pcbValue: PSQLINTEGER): SQLRETURN; stdcall;
00220
00221 TSQLParamData = function(hstmt: SQLHSTMT; prgbValue: SQLPOINTER):
00222 SQLRETURN; stdcall;
00223
00224 TSQLPutData = function(hstmt: SQLHSTMT; rgbValue: SQLPOINTER;
00225 cbValue: SQLINTEGER): SQLRETURN; stdcall;
00226
00227 {add new1 functions}
00228 TSQLColumns = function(hstmt: SQLHSTMT; szCatalogName: PSQLCHAR;
00229 cbCatalogName: SQLSMALLINT; szSchemaName: PSQLCHAR; cbSchemaName: SQLSMALLINT;
00230 szTableName: PSQLCHAR; cbTableName: SQLSMALLINT; szColumnName: PSQLCHAR;
00231 cbColumnName: SQLSMALLINT): SQLRETURN; stdcall;
00232 TSQLDataSources = function(henv: SQLHENV; fDirection: SQLUSMALLINT; szDSN: PSQLCHAR;
00233 cbDSNMax: SQLSMALLINT; pcbDSN: PSQLSMALLINT; szDescription: PSQLCHAR;
00234 cbDescriptionMax: SQLSMALLINT; pcbDescription: PSQLSMALLINT): SQLRETURN; stdcall;
00235 TSQLFetchScroll = function(StatementHandle: SQLHSTMT;
00236 FetchOrientation: SQLSMALLINT; FetchOffset: SQLLEN): SQLRETURN; stdcall;
00237 TSQLGetFunctions = function(hdbc: SQLHDBC; fFunction: SQLUSMALLINT;
00238 pfExists: PSQLUSMALLINT): SQLRETURN; stdcall;
00239 TSQLGetInfo = function(hdbc: SQLHDBC; fInfoType: SQLUSMALLINT;
00240 rgbInfoValue: SQLPOINTER; cbInfoValueMax: SQLSMALLINT;
00241 pcbInfoValue: PSQLSMALLINT): SQLRETURN; stdcall;
00242 TSQLGetStmtAttr = function(StatementHandle: SQLHSTMT; Attribute: SQLINTEGER;
00243 Value: SQLPOINTER; BufferLength: SQLINTEGER;
00244 StringLength: SQLINTEGER): SQLRETURN; stdcall;
00245 TSQLGetStmtOption = function(hstmt: SQLHSTMT; fOption: SQLUSMALLINT;
00246 pvParam: SQLPOINTER): SQLRETURN; stdcall;
00247 TSQLGetTypeInfo = function(hstmt: SQLHSTMT; fSqlType: SQLSMALLINT): SQLRETURN; stdcall;
00248 TSQLSpecialColumns = function(hstmt: SQLHSTMT; fColType: SQLUSMALLINT;
00249 szCatalogName: PSQLCHAR; cbCatalogName: SQLUSMALLINT;
00250 szSchemaName: PSQLCHAR; cbSchemaName: SQLUSMALLINT; szTableName: PSQLCHAR;
00251 cbTableName: SQLUSMALLINT; fScope: SQLUSMALLINT;
00252 fNullable: SQLUSMALLINT): SQLRETURN; stdcall;
00253 TSQLStatistics = function(hstmt: SQLHSTMT; szCatalogName: PSQLCHAR;
00254 cbCatalogName: SQLSMALLINT; szSchemaName: PSQLCHAR;
00255 cbSchemaName: SQLSMALLINT; szTableName: PSQLCHAR; cbTableName: SQLSMALLINT;
00256 fUnique: SQLUSMALLINT; fAccuracy: SQLUSMALLINT): SQLRETURN; stdcall;
00257 TSQLTables = function(hstmt: SQLHSTMT; szCatalogName: PSQLCHAR;
00258 cbCatalogName: SQLSMALLINT; szSchemaName: PSQLCHAR;
00259 cbSchemaName: SQLSMALLINT; szTableName: PSQLCHAR; cbTableName: SQLSMALLINT;
00260 szTableType: SQLSMALLINT; cbTableType: SQLSMALLINT): SQLRETURN; stdcall;
00261 TSQLNextResult = function(hstmtSource: SQLHSTMT;
00262 hstmtTarget: SQLHSTMT): SQLRETURN; stdcall;
00263
00264 {************* Plain API Function variables definition ************}
00265 var
00266 SQLAllocConnect: TSQLAllocConnect;
00267 SQLAllocEnv: TSQLAllocEnv;
00268 SQLAllocStmt: TSQLAllocStmt;
00269 SQLAllocHandle: TSQLAllocHandle;
00270 SQLBindCol: TSQLBindCol;
00271 SQLCancel: TSQLCancel;
00272 SQLColAttribute: TSQLColAttribute;
00273 SQLConnect: TSQLConnect;
00274 SQLDescribeCol: TSQLDescribeCol;
00275 SQLDisconnect: TSQLDisconnect;
00276 SQLError: TSQLError;
00277 SQLExecDirect: TSQLExecDirect;
00278 SQLExecute: TSQLExecute;
00279 SQLFetch: TSQLFetch;
00280 SQLFreeConnect: TSQLFreeConnect;
00281 SQLFreeEnv: TSQLFreeEnv;
00282 SQLFreeStmt: TSQLFreeStmt;
00283 SQLCloseCursor: TSQLCloseCursor;
00284 SQLGetCursorName: TSQLGetCursorName;
00285 SQLGetData: TSQLGetData;
00286 SQLNumResultCols: TSQLNumResultCols;
00287 SQLPrepare: TSQLPrepare;
00288 SQLRowCount: TSQLRowCount;
00289 SQLSetCursorName: TSQLSetCursorName;
00290 SQLSetParam: TSQLSetParam;
00291 SQLTransact: TSQLTransact;
00292 SQLEndTran: TSQLEndTran;
00293 SQLFreeHandle: TSQLFreeHandle;
00294 SQLGetDiagRec: TSQLGetDiagRec;
00295 SQLGetDiagField: TSQLGetDiagField;
00296 SQLCopyDesc: TSQLCopyDesc;
00297 SQLGetDescField: TSQLGetDescField;
00298 SQLGetDescRec: TSQLGetDescRec;
00299 SQLSetDescField: TSQLSetDescField;
00300 SQLSetDescRec: TSQLSetDescRec;
00301 { New added functions }
00302 SQLSetConnectAttr: TSQLSetConnectAttr;
00303 SQLSetConnectOption: TSQLSetConnectOption;
00304 SQLSetStmtAttr: TSQLSetStmtAttr;
00305 SQLSetStmtOption: TSQLSetStmtOption;
00306 SQLGetSubString: TSQLGetSubString;
00307 SQLGetLength: TSQLGetLength;
00308 SQLGetPosition: TSQLGetPosition;
00309 SQLBindParameter: TSQLBindParameter;
00310 SQLParamData: TSQLParamData;
00311 SQLPutData: TSQLPutData;
00312 {add new1 functions}
00313 SQLColumns: TSQLColumns;
00314 SQLDataSources: TSQLDataSources;
00315 SQLFetchScroll: TSQLFetchScroll;
00316 SQLGetFunctions: TSQLGetFunctions;
00317 SQLGetInfo: TSQLGetInfo;
00318 SQLGetStmtAttr: TSQLGetStmtAttr;
00319 SQLGetStmtOption: TSQLGetStmtOption;
00320 SQLGetTypeInfo: TSQLGetTypeInfo;
00321 SQLSpecialColumns: TSQLSpecialColumns;
00322 SQLStatistics: TSQLStatistics;
00323 SQLTables: TSQLTables;
00324 SQLNextResult: TSQLNextResult;
00325
00326 var
00327 LibraryLoader: TZNativeLibraryLoader;
00328
00329 implementation
00330
00331 type
00332 {** Implements a loader for DB2 native library. }
00333 TZDb2NativeLibraryLoader = class (TZNativeLibraryLoader)
00334 public
00335 function Load: Boolean; override;
00336 end;
00337
00338 { TZDb2NativeLibraryLoader }
00339
00340 {**
00341 Loads a library module.
00342 @return <code>True</code> if library was successfully loaded.
00343 }
00344 function TZDb2NativeLibraryLoader.Load: Boolean;
00345 begin
00346 Result := inherited Load;
00347
00348 SQLAllocConnect := GetAddress('SQLAllocConnect');
00349 SQLAllocEnv := GetAddress('SQLAllocEnv');
00350 SQLAllocStmt := GetAddress('SQLAllocStmt');
00351 SQLAllocHandle := GetAddress('SQLAllocHandle');
00352 SQLBindCol := GetAddress('SQLBindCol');
00353 SQLCancel := GetAddress('SQLCancel');
00354 SQLColAttribute := GetAddress('SQLColAttribute');
00355 SQLConnect := GetAddress('SQLConnect');
00356 SQLDescribeCol := GetAddress('SQLDescribeCol');
00357 SQLDisconnect := GetAddress('SQLDisconnect');
00358 SQLError := GetAddress('SQLError');
00359 SQLExecDirect := GetAddress('SQLExecDirect');
00360 SQLExecute := GetAddress('SQLExecute');
00361 SQLFetch := GetAddress('SQLFetch');
00362 SQLFreeConnect := GetAddress('SQLFreeConnect');
00363 SQLFreeEnv := GetAddress('SQLFreeEnv');
00364 SQLFreeStmt := GetAddress('SQLFreeStmt');
00365 SQLCloseCursor := GetAddress('SQLCloseCursor');
00366 SQLGetCursorName := GetAddress('SQLGetCursorName');
00367 SQLGetData := GetAddress('SQLGetData');
00368 SQLNumResultCols := GetAddress('SQLNumResultCols');
00369 SQLPrepare := GetAddress('SQLPrepare');
00370 SQLRowCount := GetAddress('SQLRowCount');
00371 SQLSetCursorName := GetAddress('SQLSetCursorName');
00372 SQLSetParam := GetAddress('SQLSetParam');
00373 SQLTransact := GetAddress('SQLTransact');
00374 SQLEndTran := GetAddress('SQLEndTran');
00375 SQLFreeHandle := GetAddress('SQLFreeHandle');
00376 SQLGetDiagRec := GetAddress('SQLGetDiagRec');
00377 SQLGetDiagField := GetAddress('SQLGetDiagField');
00378 SQLCopyDesc := GetAddress('SQLCopyDesc');
00379 SQLGetDescField := GetAddress('SQLGetDescField');
00380 SQLGetDescRec := GetAddress('SQLGetDescRec');
00381 SQLSetDescField := GetAddress('SQLSetDescField');
00382 SQLSetDescRec := GetAddress('SQLSetDescRec');
00383 { New added functions }
00384 SQLSetConnectAttr := GetAddress('SQLSetConnectAttr');
00385 SQLSetConnectOption := GetAddress('SQLSetConnectOption');
00386 SQLSetStmtAttr := GetAddress('SQLSetStmtAttr');
00387 SQLSetStmtOption := GetAddress('SQLSetStmtOption');
00388 SQLGetSubString := GetAddress('SQLGetSubString');
00389 SQLGetLength := GetAddress('SQLGetLength');
00390 SQLGetPosition := GetAddress('SQLGetPosition');
00391 SQLBindParameter := GetAddress('SQLBindParameter');
00392 SQLParamData := GetAddress('SQLParamData');
00393 SQLPutData := GetAddress('SQLPutData');
00394 {add new1 functions}
00395 SQLColumns := GetAddress('SQLColumns');
00396 SQLDataSources := GetAddress('SQLDataSources');
00397 SQLFetchScroll := GetAddress('SQLFetchScroll');
00398 SQLGetFunctions := GetAddress('SQLGetFunctions');
00399 SQLGetInfo := GetAddress('SQLGetInfo');
00400 SQLGetStmtAttr := GetAddress('SQLGetStmtAttr');
00401 SQLGetStmtOption := GetAddress('SQLGetStmtOption');
00402 SQLGetTypeInfo := GetAddress('SQLGetTypeInfo');
00403 SQLSpecialColumns := GetAddress('SQLSpecialColumns');
00404 SQLStatistics := GetAddress('SQLStatistics');
00405 SQLTables := GetAddress('SQLTables');
00406 SQLNextResult := GetAddress('SQLNextResult');
00407 end;
00408
00409 initialization
00410 {$IFNDEF UNIX}
00411 LibraryLoader := TZDb2NativeLibraryLoader.Create(
00412 [WINDOWS_DLL_LOCATION]);
00413 {$ELSE}
00414 LibraryLoader := TZDb2NativeLibraryLoader.Create(
00415 [LINUX_DLL_LOCATION]);
00416 {$ENDIF}
00417 finalization
00418 if Assigned(LibraryLoader) then
00419 LibraryLoader.Free;
00420 end.