⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sddb2.pas

📁 SQLDirect Component Library is a light-weight Borland Database Engine replacement for Borland Delphi
💻 PAS
📖 第 1 页 / 共 4 页
字号:
[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 + -