📄 sddb2.pas
字号:
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLGetTypeInfo')]
function SQLGetTypeInfo(hStmt: SQLHSTMT; fSqlType: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLNumResultCols')]
function SQLNumResultCols(hStmt: SQLHSTMT; var ccol: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLParamData')]
function SQLParamData(hStmt: SQLHSTMT; var gbValue: SQLPOINTER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLPrepare')]
function SQLPrepare(hStmt: SQLHSTMT; szSqlStr: TSDCharPtr; cbSqlStr: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLPutData')]
function SQLPutData(hStmt: SQLHSTMT; rgbValue: SQLPOINTER; cbValue: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLRowCount')]
function SQLRowCount(hStmt: SQLHSTMT; var crow: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetConnectAttr')]
function SQLSetConnectAttr(hDbc: SQLHDBC; fOption: SQLINTEGER;
pvParam: SQLPOINTER; fStrLen: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetConnectOption')]
function SQLSetConnectOption(hDbc: SQLHDBC; fOption: SQLUSMALLINT; vParam: SQLUINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetCursorName')]
function SQLSetCursorName(hStmt: SQLHSTMT; szCursor: TSDCharPtr; cbCursor: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetDescField')]
function SQLSetDescField(DescriptorHandle: SQLHDESC; RecNumber, FieldIdentifier: SQLSMALLINT;
Value: SQLPOINTER; BufferLength: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetDescRec')]
function SQLSetDescRec(DescriptorHandle: SQLHDESC; RecNumber, RecType, RecSubType: SQLSMALLINT;
Length: SQLINTEGER; Precision, Scale: SQLSMALLINT;
Data: SQLPOINTER; var StringLength, Indicator: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetEnvAttr')]
function SQLSetEnvAttr(hEnv: SQLHENV; Attr: SQLINTEGER; Value: SQLPOINTER;
StringLength: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetParam')]
function SQLSetParam(hStmt: SQLHSTMT; ipar: SQLUSMALLINT; fCType, fSqlType: SQLSMALLINT;
cbParamDef: SQLUINTEGER; ibScale: SQLSMALLINT;
rgbValue: SQLPOINTER; var cbValue: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetStmtAttr')]
function SQLSetStmtAttr(hStmt: SQLHSTMT; fOption: SQLINTEGER;
pvParam: SQLPOINTER; fStrLen: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetStmtOption')]
function SQLSetStmtOption(hStmt: SQLHSTMT; fOption: SQLUSMALLINT; vParam: SQLUINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSpecialColumns')]
function SQLSpecialColumns(hStmt: SQLHSTMT; fColType: SQLUSMALLINT;
szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
szTableName: TSDCharPtr; cbTableName: SQLSMALLINT;
fScope, fNullable: SQLUSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLStatistics')]
function SQLStatistics(hStmt: SQLHSTMT;
szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
szTableName: TSDCharPtr; cbTableName: SQLSMALLINT;
fUnique, fAccuracy: SQLUSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLTables')]
function SQLTables(hStmt: SQLHSTMT;
szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
szTableName: TSDCharPtr; cbTableName: SQLSMALLINT;
szTableType: TSDCharPtr; cbTableType: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLTransact')]
function SQLTransact(hEnv: SQLHENV; hDbc: SQLHDBC; fType: SQLUSMALLINT): SQLRETURN; external;
{*******************************************************************************
** from SQLEXT.H
********************************************************************************}
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLBrowseConnect')]
function SQLBrowseConnect(hDbc: SQLHDBC; szConnStrIn: TSDCharPtr; cbConnStrIn: SQLSMALLINT;
szConnStrOut: TSDCharPtr; cbConnStrOutMax: SQLSMALLINT;
var cbConnStrOut: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLBulkOperations')]
function SQLBulkOperations(hStmt: SQLHSTMT; Operation: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLColAttributes')]
function SQLColAttributes(hStmt: SQLHSTMT; icol, fDescType: SQLUSMALLINT; rgbDesc: SQLPOINTER;
cbDescMax: SQLSMALLINT; var cbDesc: SQLSMALLINT; var fDesc: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLColumnPrivileges')]
function SQLColumnPrivileges(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
szTableName: TSDCharPtr; cbTableName: SQLSMALLINT;
szColumnName: TSDCharPtr; cbColumnName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLDescribeParam')]
function SQLDescribeParam(hStmt: SQLHSTMT; ipar: SQLUSMALLINT; pfSqlType: SQLPOINTER;
var cbParamDef: SQLUINTEGER; pibScale, pfNullable: SQLPOINTER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLExtendedFetch')]
function SQLExtendedFetch(hStmt: SQLHSTMT; fFetchType: SQLUSMALLINT; irow: SQLINTEGER;
var crow: SQLUINTEGER; var gfRowStatus: SQLUSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLForeignKeys')]
function SQLForeignKeys(hStmt: SQLHSTMT; szPkCatalogName: TSDCharPtr; cbPkCatalogName: SQLSMALLINT;
szPkSchemaName: TSDCharPtr; cbPkSchemaName: SQLSMALLINT;
szPkTableName: TSDCharPtr; cbPkTableName: SQLSMALLINT;
szFkCatalogName: TSDCharPtr; cbFkCatalogName: SQLSMALLINT;
szFkSchemaName: TSDCharPtr; cbFkSchemaName: SQLSMALLINT;
szFkTableName: TSDCharPtr; cbFkTableName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLMoreResults')]
function SQLMoreResults(hStmt: SQLHSTMT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLNativeSql')]
function SQLNativeSql(hDbc: SQLHDBC; szSqlStrIn: TSDCharPtr; cbSqlStrIn: SQLINTEGER;
szSqlStr: TSDCharPtr; cbSqlStrMax: SQLINTEGER; var cbSqlStr: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLNumParams')]
function SQLNumParams(hStmt: SQLHSTMT; var cpar: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLParamOptions')]
function SQLParamOptions(hStmt: SQLHSTMT; crow: SQLUINTEGER; var irow: SQLUINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLPrimaryKeys')]
function SQLPrimaryKeys(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
szTableName: TSDCharPtr; cbTableName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLProcedureColumns')]
function SQLProcedureColumns(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
szProcName: TSDCharPtr; cbProcName: SQLSMALLINT;
szColumnName: TSDCharPtr; cbColumnName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLProcedures')]
function SQLProcedures(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
szProcName: TSDCharPtr; cbProcName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetPos')]
function SQLSetPos(hStmt: SQLHSTMT; irow, fOption, fLock: SQLUSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLTablePrivileges')]
function SQLTablePrivileges(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
szTableName: TSDCharPtr; cbTableName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLDrivers')]
function SQLDrivers(hEnv: SQLHENV; fDirection: SQLUSMALLINT; szDriverDesc: TSDCharPtr;
cbDriverDescMax: SQLSMALLINT; var cbDriverDesc: SQLSMALLINT;
szDriverAttributes: TSDCharPtr; cbDrvrAttrMax: SQLSMALLINT; var cbDrvrAttr: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLBindParameter')]
function SQLBindParameter(hStmt: SQLHSTMT; ipar: SQLUSMALLINT;
fParamType, fCType, fSqlType: SQLSMALLINT;
cbColDef: SQLUINTEGER; ibScale: SQLSMALLINT;
rgbValue: SQLPOINTER; cbValueMax: SQLINTEGER;
pcbValue: SQLPOINTER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLDriverConnect')]
function SQLDriverConnect(hDbc: SQLHDBC; hWnd: SQLHWND;
szConnStrIn: TSDCharPtr; cbConnStrIn: SQLSMALLINT;
szConnStrOut: TSDCharPtr; cbConnStrOutMax: SQLSMALLINT;
var cbConnStrOut: SQLSMALLINT; fDriverCompletion: SQLUSMALLINT): SQLRETURN; external;
//******* DB2 specific CLI APIs (sqlcli1.h) ********
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLBindFileToCol')]
function SQLBindFileToCol(hStmt: SQLHSTMT; icol: SQLUSMALLINT;
FileName: TSDCharPtr; var FileNameLength: SQLSMALLINT;
var FileOptions: SQLUINTEGER; MaxFileNameLength: SQLSMALLINT;
var StringLength, IndicatorValue: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLBindFileToParam')]
function SQLBindFileToParam(hStmt: SQLHSTMT; ipar: SQLUSMALLINT; fSqlType: SQLSMALLINT;
FileName: TSDCharPtr; var FileNameLength: SQLSMALLINT;
var FileOptions: SQLUINTEGER; MaxFileNameLength: SQLSMALLINT;
var IndicatorValue: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLGetLength')]
function SQLGetLength(hStmt: SQLHSTMT; LocatorCType: SQLSMALLINT; Locator: SQLINTEGER;
var StringLength, IndicatorValue: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLGetPosition')]
function SQLGetPosition(hStmt: SQLHSTMT; LocatorCType: SQLSMALLINT;
SourceLocator, SearchLocator: SQLINTEGER;
SearchLiteral: TSDCharPtr; SearchLiteralLength: SQLINTEGER;
FromPosition: SQLUINTEGER; var LocatedAt: SQLUINTEGER;
var IndicatorValue: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLGetSubString')]
function SQLGetSubString(hStmt: SQLHSTMT; LocatorCType: SQLSMALLINT;
SourceLocator: SQLINTEGER; FromPosition, ForLength: SQLUINTEGER;
TargetCType: SQLSMALLINT; rgbValue: SQLPOINTER;
cbValueMax: SQLINTEGER; var StringLength, IndicatorValue: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetColAttributes')]
function SQLSetColAttributes(hStmt: SQLHSTMT; icol: SQLUSMALLINT;
szColName: TSDCharPtr; cbColName, fSQLType: SQLSMALLINT;
cbColDef: SQLUINTEGER; ibScale, fNullable: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLBindParam')]
function SQLBindParam(hStmt: SQLHSTMT; ParameterNumber: SQLUSMALLINT;
ValueType, ParameterType: SQLSMALLINT; LengthPrecision: SQLUINTEGER;
ParameterScale: SQLSMALLINT; ParameterValue: SQLPOINTER;
var StrLen_or_Ind: SQLINTEGER): SQLRETURN; external;
{$ENDIF}
(*******************************************************************************
Load/Unload Sql-library
********************************************************************************)
procedure LoadSqlLib;
procedure FreeSqlLib;
function InitSqlDatabase(ADbParams: TStrings): TISqlDatabase;
implementation
resourcestring
SErrLibLoading = 'Error loading library ''%s''';
SErrLibUnloading = 'Error unloading library ''%s''';
var
hSqlLibModule: THandle;
SqlLibRefCount: Integer;
SqlLibLock: TCriticalSection;
function InitSqlDatabase(ADbParams: TStrings): TISqlDatabase;
var
s: string;
begin
if hSqlLibModule = 0 then begin
s := Trim( ADbParams.Values[GetSqlLibParamName( Ord(istDB2) )] );
if s <> '' then
SqlApiDLL := s;
end;
Result := TIDb2Database.Create( ADbParams );
end;
{ TDB2Functions }
procedure TDB2Functions.SetApiCalls(ASqlLibModule: THandle);
begin
FLibHandle := ASqlLibModule;
{$IFDEF SD_CLR}
// there are used functions, which imported in the current unit
FSQLAllocConnect := SDDb2.SQLAllocConnect;
FSQLAllocEnv := SDDb2.SQLAllocEnv;
FSQLAllocHandle := SDDb2.SQLAllocHandle;
FSQLAllocStmt := SDDb2.SQLAllocStmt;
FSQLBindCol := SDDb2.SQLBindCol;
FSQLCancel := SDDb2.SQLCancel;
FSQLCloseCursor := SDDb2.SQLCloseCursor;
FSQLColAttribute := SDDb2.SQLColAttribute;
FSQLColumns := SDDb2.SQLColumns;
FSQLConnect := SDDb2.SQLConnect;
FSQLCopyDesc := SDDb2.SQLCopyDesc;
FSQLDataSources := SDDb2.SQLDataSources;
FSQLDescribeCol := SDDb2.SQLDescribeCol;
FSQLDisconnect := SDDb2.SQLDisconnect;
FSQLEndTran := SDDb2.SQLEndTran;
FSQLError := SDDb2.SQLError;
FSQLExecDirect := SDDb2.SQLExecDirect;
FSQLExecute := SDDb2.SQLExecute;
FSQLFetch := SDDb2.SQLFetch;
FSQLFetchScroll := SDDb2.SQLFetchScroll;
FSQLFreeConnect := SDDb2.SQLFreeConnect;
FSQLFreeEnv := SDDb2.SQLFreeEnv;
FSQLFreeHandle := SDDb2.SQLFreeHandle;
FSQLFreeStmt := SDDb2.SQLFreeStmt;
FSQLGetConnectAttr := SDDb2.SQLGetConnectAttr;
FSQLGetConnectOption := SDDb2.SQLGetConnectOption;
FSQLGetCursorName := SDDb2.SQLGetCursorName;
FSQLGetData := SDDb2.SQLGetData;
FSQLGetDescField := SDDb2.SQLGetDescField;
FSQLGetDescRec := SDDb2.SQLGetDescRec;
FSQLGetDiagField := SDDb2.SQLGetDiagField;
FSQLGetDiagRec := SDDb2.SQLGetDiagRec;
FSQLGetEnvAttr := SDDb2.SQLGetEnvAttr;
FSQLGetFunctions := SDDb2.SQLGetFunctions;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -