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

📄 sdinf.pas

📁 SQLDirect Component Library is a light-weight Borland Database Engine replacement for Borland Delphi
💻 PAS
📖 第 1 页 / 共 5 页
字号:
        szTableName: TSDCharPtr; cbTableName: SQLSMALLINT;
        fScope, fNullable: SQLUSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLStatistics')]
function B_SQLStatistics(hStmt: SQLHSTMT;
        szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
        szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
        szTableName: TSDCharPtr; cbTableName: SQLSMALLINT;
        fUnique, fAccuracy: SQLUSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLTables')]
function B_SQLTables(hStmt: SQLHSTMT;
               szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
               szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
               szTableName: TSDCharPtr; cbTableName: SQLSMALLINT;
               szTableType: TSDCharPtr; cbTableType: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLTransact')]
function B_SQLTransact(hEnv: SQLHENV; hDbc: SQLHDBC; fType: SQLUSMALLINT): SQLRETURN; external;
// ------------------	from SQLEXT.H		--------------------------------
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLBrowseConnect')]
function B_SQLBrowseConnect(hDbc: SQLHDBC; szConnStrIn: TSDCharPtr; cbConnStrIn: SQLSMALLINT;
           	szConnStrOut: TSDCharPtr; cbConnStrOutMax: SQLSMALLINT;
                var cbConnStrOut: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLBulkOperations')]
function B_SQLBulkOperations(hStmt: SQLHSTMT; Operation: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLColAttributes')]
function B_SQLColAttributes(hStmt: SQLHSTMT; icol, fDescType: SQLUSMALLINT; rgbDesc: SQLPOINTER;
           	cbDescMax: SQLSMALLINT; var cbDesc: SQLSMALLINT; var fDesc: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLColumnPrivileges')]
function B_SQLColumnPrivileges(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
           	szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
                szTableName: TSDCharPtr; cbTableName: SQLSMALLINT;
                szColumnName: TSDCharPtr; cbColumnName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLDescribeParam')]
function B_SQLDescribeParam(hStmt: SQLHSTMT; ipar: SQLUSMALLINT; pfSqlType: SQLPOINTER;
           	var cbParamDef: SQLUINTEGER; pibScale, pfNullable: SQLPOINTER): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLExtendedFetch')]
function B_SQLExtendedFetch(hStmt: SQLHSTMT; fFetchType: SQLUSMALLINT; irow: SQLINTEGER;
           	var crow: SQLUINTEGER; var gfRowStatus: SQLUSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLForeignKeys')]
function B_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_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLMoreResults')]
function B_SQLMoreResults(hStmt: SQLHSTMT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLNativeSql')]
function B_SQLNativeSql(hDbc: SQLHDBC; szSqlStrIn: TSDCharPtr; cbSqlStrIn: SQLINTEGER;
			szSqlStr: TSDCharPtr; cbSqlStrMax: SQLINTEGER; var cbSqlStr: SQLINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLNumParams')]
function B_SQLNumParams(hStmt: SQLHSTMT; var cpar: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLParamOptions')]
function B_SQLParamOptions(hStmt: SQLHSTMT; crow: SQLUINTEGER; var irow: SQLUINTEGER): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLPrimaryKeys')]
function B_SQLPrimaryKeys(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
			szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
			szTableName: TSDCharPtr; cbTableName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLProcedureColumns')]
function B_SQLProcedureColumns(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
			szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
                        szProcName: TSDCharPtr; cbProcName: SQLSMALLINT;
			szColumnName: TSDCharPtr; cbColumnName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLProcedures')]
function B_SQLProcedures(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
			szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
			szProcName: TSDCharPtr; cbProcName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLSetPos')]
function B_SQLSetPos(hStmt: SQLHSTMT; irow, fOption, fLock: SQLUSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLTablePrivileges')]
function B_SQLTablePrivileges(hStmt: SQLHSTMT; szCatalogName: TSDCharPtr; cbCatalogName: SQLSMALLINT;
           	szSchemaName: TSDCharPtr; cbSchemaName: SQLSMALLINT;
                szTableName: TSDCharPtr; cbTableName: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLDrivers')]
function B_SQLDrivers(hEnv: SQLHENV; fDirection: SQLUSMALLINT; szDriverDesc: TSDCharPtr;
           	cbDriverDescMax: SQLSMALLINT; var cbDriverDesc: SQLSMALLINT;
                   szDriverAttributes: TSDCharPtr; cbDrvrAttrMax: SQLSMALLINT; var cbDrvrAttr: SQLSMALLINT): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLBindParameter')]
function B_SQLBindParameter(hStmt: SQLHSTMT; ipar: SQLUSMALLINT;
			fParamType, fCType, fSqlType: SQLSMALLINT;
			cbColDef: SQLUINTEGER; ibScale: SQLSMALLINT;
			rgbValue: SQLPOINTER; cbValueMax: SQLINTEGER;
                        pcbValue: SQLPOINTER): SQLRETURN; external;
[DllImport(DefSqlApiDLL_B, CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SQLDriverConnect')]
function B_SQLDriverConnect(hDbc: SQLHDBC; hWnd: SQLHWND;
             	        szConnStrIn: TSDCharPtr; cbConnStrIn: SQLSMALLINT;
                        szConnStrOut: TSDCharPtr; cbConnStrOutMax: SQLSMALLINT;
                        var cbConnStrOut: SQLSMALLINT; fDriverCompletion: SQLUSMALLINT): 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(istInformix) )] );
    if s <> '' then
      SqlApiDLL := s;
  end;

  Result := TIInfDatabase.Create( ADbParams );
end;


{ TInfFunctions }
procedure TInfFunctions.SetApiCalls(ASqlLibModule: THandle);
{$IFDEF SD_CLR}
var
  s: string;
begin
  FLibHandle := ASqlLibModule;
  s := GetModuleFileNameStr( FLibHandle );
  s := ExtractFileName( s );
	// there are used functions, which imported in the current unit
  if UpperCase(s) = DefSqlApiDLL_A then begin
    FSQLAllocConnect    	:= SDInf.SQLAllocConnect;
    FSQLAllocEnv        	:= SDInf.SQLAllocEnv;
    FSQLAllocStmt       	:= SDInf.SQLAllocStmt;
    FSQLBindCol         	:= SDInf.SQLBindCol;
    FSQLCancel          	:= SDInf.SQLCancel;
    FSQLCloseCursor     	:= SDInf.SQLCloseCursor;
    FSQLColAttribute    	:= SDInf.SQLColAttribute;
    FSQLColumns         	:= SDInf.SQLColumns;
    FSQLConnect         	:= SDInf.SQLConnect;
    FSQLCopyDesc        	:= SDInf.SQLCopyDesc;
    FSQLDataSources     	:= SDInf.SQLDataSources;
    FSQLDescribeCol     	:= SDInf.SQLDescribeCol;
    FSQLDisconnect      	:= SDInf.SQLDisconnect;
    FSQLEndTran         	:= SDInf.SQLEndTran;
    FSQLError           	:= SDInf.SQLError;
    FSQLExecDirect      	:= SDInf.SQLExecDirect;
    FSQLExecute         	:= SDInf.SQLExecute;
    FSQLFetch           	:= SDInf.SQLFetch;
    FSQLFetchScroll     	:= SDInf.SQLFetchScroll;
    FSQLFreeConnect     	:= SDInf.SQLFreeConnect;
    FSQLFreeEnv         	:= SDInf.SQLFreeEnv;
    FSQLFreeHandle      	:= SDInf.SQLFreeHandle;
    FSQLFreeStmt        	:= SDInf.SQLFreeStmt;
    FSQLGetConnectAttr  	:= SDInf.SQLGetConnectAttr;
    FSQLGetConnectOption	:= SDInf.SQLGetConnectOption;
    FSQLGetCursorName   	:= SDInf.SQLGetCursorName;
    FSQLGetData         	:= SDInf.SQLGetData;
    FSQLGetDescField    	:= SDInf.SQLGetDescField;
    FSQLGetDescRec      	:= SDInf.SQLGetDescRec;
    FSQLGetDiagField    	:= SDInf.SQLGetDiagField;
    FSQLGetDiagRec      	:= SDInf.SQLGetDiagRec;
    FSQLGetEnvAttr      	:= SDInf.SQLGetEnvAttr;
    FSQLGetFunctions    	:= SDInf.SQLGetFunctions;
    FSQLGetInfo         	:= SDInf.SQLGetInfo;
    FSQLGetStmtAttr     	:= SDInf.SQLGetStmtAttr;
    FSQLGetStmtOption   	:= SDInf.SQLGetStmtOption;
    FSQLGetTypeInfo     	:= SDInf.SQLGetTypeInfo;
    FSQLNumResultCols   	:= SDInf.SQLNumResultCols;
    FSQLParamData       	:= SDInf.SQLParamData;
    FSQLPrepare         	:= SDInf.SQLPrepare;
    FSQLPutData         	:= SDInf.SQLPutData;
    FSQLRowCount        	:= SDInf.SQLRowCount;
    FSQLSetConnectAttr  	:= SDInf.SQLSetConnectAttr;
    FSQLSetConnectOption	:= SDInf.SQLSetConnectOption;
    FSQLSetCursorName   	:= SDInf.SQLSetCursorName;
    FSQLSetDescField    	:= SDInf.SQLSetDescField;
    FSQLSetDescRec      	:= SDInf.SQLSetDescRec;
    FSQLSetEnvAttr      	:= SDInf.SQLSetEnvAttr;
    FSQLSetParam        	:= SDInf.SQLSetParam;
    FSQLSetStmtAttr     	:= SDInf.SQLSetStmtAttr;
    FSQLSetStmtOption   	:= SDInf.SQLSetStmtOption;
    FSQLSpecialColumns  	:= SDInf.SQLSpecialColumns;
    FSQLStatistics      	:= SDInf.SQLStatistics;
    FSQLTables          	:= SDInf.SQLTables;
    FSQLTransact        	:= SDInf.SQLTransact;
    FSQLBrowseConnect   	:= SDInf.SQLBrowseConnect;
    FSQLBulkOperations  	:= SDInf.SQLBulkOperations;
    FSQLColAttributes   	:= SDInf.SQLColAttributes;
    FSQLColumnPrivileges	:= SDInf.SQLColumnPrivileges;
    FSQLDescribeParam   	:= SDInf.SQLDescribeParam;
    FSQLExtendedFetch   	:= SDInf.SQLExtendedFetch;
    FSQLForeignKeys   		:= SDInf.SQLForeignKeys;
    FSQLMoreResults     	:= SDInf.SQLMoreResults;
    FSQLNativeSql       	:= SDInf.SQLNativeSql;
    FSQLNumParams       	:= SDInf.SQLNumParams;
    FSQLParamOptions    	:= SDInf.SQLParamOptions;
    FSQLPrimaryKeys     	:= SDInf.SQLPrimaryKeys;
    FSQLProcedureColumns	:= SDInf.SQLProcedureColumns;
    FSQLProcedures      	:= SDInf.SQLProcedures;
    FSQLSetPos  		:= SDInf.SQLSetPos;
    FSQLTablePrivileges 	:= SDInf.SQLTablePrivileges;
    FSQLDrivers 		:= SDInf.SQLDrivers;
    FSQLBindParameter   	:= SDInf.SQLBindParameter;
    FSQLDriverConnect   	:= SDInf.SQLDriverConnect;
    Exit;
  end;
  FSQLAllocConnect    	:= B_SQLAllocConnect;
  FSQLAllocEnv        	:= B_SQLAllocEnv;
  FSQLAllocHandle     	:= B_SQLAllocHandle;
  FSQLAllocStmt       	:= B_SQLAllocStmt;
  FSQLBindCol         	:= B_SQLBindCol;
  FSQLCancel          	:= B_SQLCancel;
  FSQLCloseCursor     	:= B_SQLCloseCursor;
  FSQLColAttribute    	:= B_SQLColAttribute;
  FSQLColumns         	:= B_SQLColumns;
  FSQLConnect         	:= B_SQLConnect;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -