diff --git a/packages/odbc/src/odbcsql.inc b/packages/odbc/src/odbcsql.inc index 34d2f076e4..c6ce7bd274 100644 --- a/packages/odbc/src/odbcsql.inc +++ b/packages/odbc/src/odbcsql.inc @@ -68,6 +68,7 @@ uses type SQLCHAR = cuchar; + SQLWCHAR = WideChar; SQLSCHAR = cschar; SQLSMALLINT = csshort; SQLUSMALLINT = cushort; @@ -87,7 +88,8 @@ type SQLHDESC = SQLHANDLE; SQLHWND = pointer; SQLSETPOSIROW= {$IF DEFINED(CPU64) AND DEFINED(ODBCVER352)}cuint64{$ELSE}SQLUSMALLINT{$ENDIF}; - PSQLCHAR = PChar; + PSQLCHAR = PAnsiChar; + PSQLWCHAR = PWideChar; PSQLSMALLINT = ^SQLSMALLINT; PSQLUSMALLINT = ^SQLUSMALLINT; PSQLINTEGER = ^SQLINTEGER; @@ -211,6 +213,7 @@ const { C datatype to SQL datatype mapping } SQL_C_CHAR = SQL_CHAR; SQL_C_WCHAR = SQL_WCHAR; + SQL_C_TCHAR = {$IFDEF UNICODE}SQL_C_WCHAR{$ELSE}SQL_C_CHAR{$ENDIF}; SQL_C_LONG = SQL_INTEGER; SQL_C_SHORT = SQL_SMALLINT; SQL_C_FLOAT = SQL_REAL; @@ -1066,10 +1069,10 @@ const {$ifdef DYNLOADINGODBC} -type tSQLAllocHandle =function(HandleType: SQLSMALLINT; +type TSQLAllocHandle =function(HandleType: SQLSMALLINT; InputHandle:SQLHANDLE;Var OutputHandlePtr: SQLHANDLE):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; -type tSQLSetEnvAttr=function (EnvironmentHandle:SQLHENV; +type TSQLSetEnvAttr=function (EnvironmentHandle:SQLHENV; Attribute:SQLINTEGER;Value:SQLPOINTER; StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; @@ -1078,9 +1081,15 @@ type TSQLFreeHandle=function (HandleType:SQLSMALLINT; type TSQLGetDiagRec=function (HandleType:SQLSMALLINT; Handle:SQLHANDLE;RecNumber:SQLSMALLINT; - Sqlstate:PSQLCHAR;var NativeError:SQLINTEGER; + SqlState:PSQLCHAR;var NativeError:SQLINTEGER; MessageText:PSQLCHAR;BufferLength:SQLSMALLINT; var TextLength:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLGetDiagRecW=function (HandleType:SQLSMALLINT; + Handle:SQLHANDLE;RecNumber:SQLSMALLINT; + SqlState:PSQLWCHAR;var NativeError:SQLINTEGER; + MessageText:PSQLWCHAR;BufferLength:SQLSMALLINT; + var TextLength:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + type TSQLGetDiagField=function (HandleType:SQLSMALLINT; Handle:SQLHANDLE;RecNumber:SQLSMALLINT; @@ -1091,20 +1100,33 @@ type TSQLConnect=function (ConnectionHandle:SQLHDBC; ServerName:PSQLCHAR;NameLength1:SQLSMALLINT; UserName:PSQLCHAR;NameLength2:SQLSMALLINT; Authentication:PSQLCHAR;NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLConnectW=function (ConnectionHandle:SQLHDBC; + ServerName:PSQLWCHAR;NameLength1:SQLSMALLINT; + UserName:PSQLWCHAR;NameLength2:SQLSMALLINT; + Authentication:PSQLWCHAR;NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; type TSQLDisconnect=function(ConnectionHandle:SQLHDBC):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; -type TSQLDriverConnect=function (hdbc: SQLHDBC; - hwnd: SQLHWND;szCsin: PChar; - szCLen: SQLSMALLINT;szCsout: PChar; - cbCSMax: SQLSMALLINT;Var cbCsOut: SQLSMALLINT; - f: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; +type TSQLDriverConnect=function (ConnectionHandle: SQLHDBC; + WindowHandle: SQLHWND; InConnectionString: PSQLCHAR; + StringLength1: SQLSMALLINT; OutConnectionString: PSQLCHAR; + BufferLength: SQLSMALLINT; Var StringLength2: SQLSMALLINT; + DriverCompletion: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLDriverConnectW=function (ConnectionHandle: SQLHDBC; + WindowHandle: SQLHWND; InConnectionString: PSQLWCHAR; + StringLength1: SQLSMALLINT; OutConnectionString: PSQLWCHAR; + BufferLength: SQLSMALLINT; Var StringLength2: SQLSMALLINT; + DriverCompletion: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; type TSQLExecDirect=function (StatementHandle:SQLHSTMT; StatementText:PSQLCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLExecDirectW=function (StatementHandle:SQLHSTMT; + StatementText:PSQLWCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; type TSQLPrepare=function (StatementHandle:SQLHSTMT; StatementText:PSQLCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLPrepareW=function (StatementHandle:SQLHSTMT; + StatementText:PSQLWCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; type TSQLCloseCursor=function (StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; @@ -1120,6 +1142,11 @@ type TSQLDescribeCol=function (StatementHandle:SQLHSTMT; BufferLength:SQLSMALLINT;var NameLength:SQLSMALLINT; var DataType:SQLSMALLINT;var ColumnSize:SQLULEN; var DecimalDigits:SQLSMALLINT;var Nullable:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLDescribeColW=function (StatementHandle:SQLHSTMT; + ColumnNumber:SQLUSMALLINT;ColumnName:PSQLWCHAR; + BufferLength:SQLSMALLINT;var NameLength:SQLSMALLINT; + var DataType:SQLSMALLINT;var ColumnSize:SQLULEN; + var DecimalDigits:SQLSMALLINT;var Nullable:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; type TSQLFetchScroll=function (StatementHandle:SQLHSTMT; FetchOrientation:SQLSMALLINT;FetchOffset:SQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; @@ -1150,7 +1177,7 @@ type TSQLSetDescRec=function (DescriptorHandle:SQLHDESC; Length:SQLLEN; Precision, Scale: SQLSMALLINT; DataPtr:SQLPOINTER; StringLengthPtr,IndicatorPtr:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; -type tSQLGetInfo=function (ConnectionHandle:SQLHDBC; +type TSQLGetInfo=function (ConnectionHandle:SQLHDBC; InfoType:SQLUSMALLINT;InfoValue:SQLPOINTER; BufferLength:SQLSMALLINT;StringLength:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; @@ -1207,8 +1234,8 @@ type TSQLFreeStmt=function (StatementHandle:SQLHSTMT; type TSQLColAttribute=function (StatementHandle:SQLHSTMT; ColumnNumber:SQLUSMALLINT;FieldIdentifier:SQLUSMALLINT; - CharacterAttribute:PSQLCHAR;BufferLength:SQLSMALLINT; - StringLength:PSQLSMALLINT;NumericAttribute:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + CharacterAttributePtr:SQLPOINTER;BufferLength:SQLSMALLINT; + StringLengthPtr:PSQLSMALLINT;NumericAttributePtr:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; type TSQLEndTran=function (HandleType:SQLSMALLINT; Handle:SQLHANDLE;CompletionType:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; @@ -1218,12 +1245,22 @@ type TSQLTables=function ( hstmt : SQLHSTMT; szTableOwner : PSQLCHAR;cbTableOwner : SQLSMALLINT; szTableName : PSQLCHAR;cbTableName : SQLSMALLINT; szTableType : PSQLCHAR;cbTableType : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLTablesW=function ( hstmt : SQLHSTMT; + szTableQualifier : PSQLWCHAR;cbTableQualifier : SQLSMALLINT; + szTableOwner : PSQLWCHAR;cbTableOwner : SQLSMALLINT; + szTableName : PSQLWCHAR;cbTableName : SQLSMALLINT; + szTableType : PSQLWCHAR;cbTableType : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; type TSQLColumns=function ( hstmt : SQLHSTMT; szTableQualifier : PSQLCHAR;cbTableQualifier : SQLSMALLINT; szTableOwner : PSQLCHAR;cbTableOwner : SQLSMALLINT; szTableName : PSQLCHAR;cbTableName : SQLSMALLINT; szColumnName : PSQLCHAR;cbColumnName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLColumnsW=function ( hstmt : SQLHSTMT; + szTableQualifier : PSQLWCHAR;cbTableQualifier : SQLSMALLINT; + szTableOwner : PSQLWCHAR;cbTableOwner : SQLSMALLINT; + szTableName : PSQLWCHAR;cbTableName : SQLSMALLINT; + szColumnName : PSQLWCHAR;cbColumnName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; type TSQLSpecialColumns=function (StatementHandle:SQLHSTMT; IdentifierType:SQLUSMALLINT;CatalogName:PSQLCHAR; @@ -1236,42 +1273,60 @@ type TSQLProcedures=function ( hstmt : SQLHSTMT; szTableQualifier : PSQLCHAR;cbTableQualifier : SQLSMALLINT; szTableOwner : PSQLCHAR;cbTableOwner : SQLSMALLINT; szTableName : PSQLCHAR;cbTableName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLProceduresW=function ( hstmt : SQLHSTMT; + szTableQualifier : PSQLWCHAR;cbTableQualifier : SQLSMALLINT; + szTableOwner : PSQLWCHAR;cbTableOwner : SQLSMALLINT; + szTableName : PSQLWCHAR;cbTableName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; -type TSQLPrimaryKeys=function (hstmt : SQLHSTMT; - CatalogName:PSQLCHAR;NameLength1:SQLSMALLINT; - SchemaName:PSQLCHAR;NameLength2:SQLSMALLINT; - TableName:PSQLCHAR;NameLength3:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; type TSQLProcedureColumns = function(hstmt: SQLHSTMT; CatalogName: PSQLCHAR; NameLength1: SQLSMALLINT; SchemaName: PSQLCHAR; NameLength2: SQLSMALLINT; ProcName: PSQLCHAR; NameLength3: SQLSMALLINT; ColumnName: PSQLCHAR; NameLength4: SQLSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; + +type TSQLPrimaryKeys=function (hstmt : SQLHSTMT; + CatalogName:PSQLCHAR;NameLength1:SQLSMALLINT; + SchemaName:PSQLCHAR;NameLength2:SQLSMALLINT; + TableName:PSQLCHAR;NameLength3:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLPrimaryKeysW=function (hstmt : SQLHSTMT; + CatalogName:PSQLWCHAR;NameLength1:SQLSMALLINT; + SchemaName:PSQLWCHAR;NameLength2:SQLSMALLINT; + TableName:PSQLWCHAR;NameLength3:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif}; + type TSQLStatistics = function (hstmt: SQLHSTMT; CatalogName:PSQLCHAR; NameLength1:SQLSMALLINT; SchemaName:PSQLCHAR; NameLength2:SQLSMALLINT; TableName:PSQLCHAR; NameLength3:SQLSMALLINT; Unique:SQLUSMALLINT; Reserved:SQLUSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; + TSQLStatisticsW = function (hstmt: SQLHSTMT; + CatalogName:PSQLWCHAR; NameLength1:SQLSMALLINT; + SchemaName:PSQLWCHAR; NameLength2:SQLSMALLINT; + TableName:PSQLWCHAR; NameLength3:SQLSMALLINT; + Unique:SQLUSMALLINT; + Reserved:SQLUSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; var SQLAllocHandle:tSQLAllocHandle; var SQLSetEnvAttr:tSQLSetEnvAttr; var SQLFreeHandle:tSQLFreeHandle; var SQLGetInfo:tSQLGetInfo; -var SQLProcedures:TSQLProcedures; -var SQLColumns:TSQLColumns; -var SQLSpecialColumns:TSQLSpecialColumns; var SQLGetDiagRec:TSQLGetDiagRec; var SQLGetDiagField:TSQLGetDiagField; var SQLConnect:TSQLConnect; + SQLConnectW:TSQLConnectW; var SQLDisconnect:TSQLDisconnect; var SQLDriverConnect:TSQLDriverConnect; + SQLDriverConnectW:TSQLDriverConnectW; var SQLExecDirect:TSQLExecDirect; + SQLExecDirectW:TSQLExecDirectW; var SQLPrepare:TSQLPrepare; + SQLPrepareW:TSQLPrepareW; var SQLCloseCursor:TSQLCloseCursor; var SQLExecute:TSQLExecute; var SQLFetch:TSQLFetch; var SQLNumResultCols:TSQLNumResultCols; var SQLDescribeCol:TSQLDescribeCol; + SQLDescribeColW:TSQLDescribeColW; var SQLFetchScroll:TSQLFetchScroll; var SQLExtendedFetch:TSQLExtendedFetch; var SQLGetData:TSQLGetData; @@ -1294,9 +1349,18 @@ var SQLFreeStmt:TSQLFreeStmt; var SQLColAttribute:TSQLColAttribute; var SQLEndTran:TSQLEndTran; var SQLTables:TSQLTables; + SQLTablesW:TSQLTablesW; +var SQLColumns:TSQLColumns; + SQLColumnsW:TSQLColumnsW; +var SQLSpecialColumns:TSQLSpecialColumns; var SQLPrimaryKeys:TSQLPrimaryKeys; + SQLPrimaryKeysW:TSQLPrimaryKeysW; +var SQLProcedures:TSQLProcedures; + SQLProceduresW:TSQLProceduresW; var SQLProcedureColumns : TSQLProcedureColumns; var SQLStatistics: TSQLStatistics; + SQLStatisticsW: TSQLStatisticsW; + var odbcversion:word; {$else} @@ -1323,11 +1387,20 @@ var odbcversion:word; HandleType: SQLSMALLINT; Handle: SQLHANDLE; RecNumber: SQLSMALLINT; - Sqlstate: PSQLCHAR; + SqlState: PSQLCHAR; var NativeError: SQLINTEGER; MessageText: PSQLCHAR; BufferLength: SQLSMALLINT; var TextLength: SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + function SQLGetDiagRecW( + HandleType: SQLSMALLINT; + Handle: SQLHANDLE; + RecNumber: SQLSMALLINT; + SqlState: PSQLWCHAR; + var NativeError: SQLINTEGER; + MessageText: PSQLWCHAR; + BufferLength: SQLSMALLINT; + var TextLength: SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; function SQLGetDiagField( HandleType:SQLSMALLINT; Handle:SQLHANDLE; @@ -1342,17 +1415,26 @@ var odbcversion:word; UserName:PSQLCHAR; NameLength2:SQLSMALLINT; Authentication:PSQLCHAR;NameLength3:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + function SQLConnectW( + ConnectionHandle: SQLHDBC; + ServerName:PSQLWCHAR; NameLength1:SQLSMALLINT; + UserName:PSQLWCHAR; NameLength2:SQLSMALLINT; + Authentication:PSQLWCHAR;NameLength3:SQLSMALLINT + ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; function SQLDisconnect( ConnectionHandle:SQLHDBC):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; function SQLDriverConnect( - hdbc: SQLHDBC; - hwnd: SQLHWND; - szCsin: PChar; - szCLen: SQLSMALLINT; - szCsout: PChar; - cbCSMax: SQLSMALLINT; - Var cbCsOut: SQLSMALLINT; - f: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + ConnectionHandle: SQLHDBC; + WindowHandle: SQLHWND; InConnectionString: PSQLCHAR; + StringLength1: SQLSMALLINT; OutConnectionString: PSQLCHAR; + BufferLength: SQLSMALLINT; Var StringLength2: SQLSMALLINT; + DriverCompletion: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + function SQLDriverConnectW( + ConnectionHandle: SQLHDBC; + WindowHandle: SQLHWND; InConnectionString: PSQLWCHAR; + StringLength1: SQLSMALLINT; OutConnectionString: PSQLWCHAR; + BufferLength: SQLSMALLINT; Var StringLength2: SQLSMALLINT; + DriverCompletion: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; function SQLBrowseConnect( hdbc : SQLHDBC; szConnStrIn :PSQLCHAR; @@ -1364,10 +1446,18 @@ var odbcversion:word; StatementHandle:SQLHSTMT; StatementText: PSQLCHAR; TextLength: SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + function SQLExecDirectW( + StatementHandle:SQLHSTMT; + StatementText: PSQLWCHAR; + TextLength: SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; function SQLPrepare( StatementHandle:SQLHSTMT; StatementText:PSQLCHAR; TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + function SQLPrepareW( + StatementHandle:SQLHSTMT; + StatementText:PSQLWCHAR; + TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; function SQLCloseCursor( StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; function SQLExecute( @@ -1387,6 +1477,16 @@ var odbcversion:word; var ColumnSize:SQLULEN; var DecimalDigits:SQLSMALLINT; var Nullable:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + function SQLDescribeColW( + StatementHandle:SQLHSTMT; + ColumnNumber:SQLUSMALLINT; + ColumnName:PSQLWCHAR; + BufferLength:SQLSMALLINT; + var NameLength:SQLSMALLINT; + var DataType:SQLSMALLINT; + var ColumnSize:SQLULEN; + var DecimalDigits:SQLSMALLINT; + var Nullable:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; function SQLFetchScroll( StatementHandle:SQLHSTMT; FetchOrientation:SQLSMALLINT; @@ -1491,10 +1591,10 @@ var odbcversion:word; StatementHandle:SQLHSTMT; ColumnNumber:SQLUSMALLINT; FieldIdentifier:SQLUSMALLINT; - CharacterAttribute:PSQLCHAR; + CharacterAttributePtr:SQLPOINTER; BufferLength:SQLSMALLINT; - StringLength:PSQLSMALLINT; - NumericAttribute:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + StringLengthPtr:PSQLSMALLINT; + NumericAttributePtr:PSQLLEN):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; {$ifdef ODBCVER3} function SQLEndTran( HandleType:SQLSMALLINT; @@ -1510,6 +1610,15 @@ var odbcversion:word; cbTableName : SQLSMALLINT; szTableType : PSQLCHAR; cbTableType : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib; + function SQLTablesW( hstmt : SQLHSTMT; + szTableQualifier : PSQLWCHAR; + cbTableQualifier : SQLSMALLINT; + szTableOwner : PSQLWCHAR; + cbTableOwner : SQLSMALLINT; + szTableName : PSQLWCHAR; + cbTableName : SQLSMALLINT; + szTableType : PSQLWCHAR; + cbTableType : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib; function SQLColumns( hstmt : SQLHSTMT; szTableQualifier : PSQLCHAR; cbTableQualifier : SQLSMALLINT; @@ -1519,6 +1628,15 @@ var odbcversion:word; cbTableName : SQLSMALLINT; szColumnName : PSQLCHAR; cbColumnName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib; + function SQLColumnsW( hstmt : SQLHSTMT; + szTableQualifier : PSQLWCHAR; + cbTableQualifier : SQLSMALLINT; + szTableOwner : PSQLWCHAR; + cbTableOwner : SQLSMALLINT; + szTableName : PSQLWCHAR; + cbTableName : SQLSMALLINT; + szColumnName : PSQLWCHAR; + cbColumnName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib; function SQLSpecialColumns(StatementHandle:SQLHSTMT; IdentifierType:SQLUSMALLINT; CatalogName:PSQLCHAR; @@ -1536,23 +1654,38 @@ var odbcversion:word; cbTableOwner : SQLSMALLINT; szTableName : PSQLCHAR; cbTableName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib; + function SQLProceduresW( hstmt : SQLHSTMT; + szTableQualifier : PSQLWCHAR; + cbTableQualifier : SQLSMALLINT; + szTableOwner : PSQLWCHAR; + cbTableOwner : SQLSMALLINT; + szTableName : PSQLWCHAR; + cbTableName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib; function SQLPrimaryKeys(hstmt : SQLHSTMT; - CatalogName:PSQLCHAR;NameLength1:SQLSMALLINT; - SchemaName:PSQLCHAR;NameLength2:SQLSMALLINT; - TableName:PSQLCHAR; - NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + CatalogName:PSQLCHAR; NameLength1:SQLSMALLINT; + SchemaName:PSQLCHAR; NameLength2:SQLSMALLINT; + TableName:PSQLCHAR; NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; + function SQLPrimaryKeysW(hstmt : SQLHSTMT; + CatalogName:PSQLWCHAR; NameLength1:SQLSMALLINT; + SchemaName:PSQLWCHAR; NameLength2:SQLSMALLINT; + TableName:PSQLWCHAR; NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib; function SQLProcedureColumns(hstmt: SQLHSTMT; CatalogName: PSQLCHAR; NameLength1: SQLSMALLINT; SchemaName: PSQLCHAR; NameLength2: SQLSMALLINT; ProcName: PSQLCHAR; NameLength3: SQLSMALLINT; - ColumnName: PSQLCHAR; NameLength4: SQLSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; - external odbclib; + ColumnName: PSQLCHAR; NameLength4: SQLSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib; function SQLStatistics(hstmt: SQLHSTMT; CatalogName:PSQLCHAR; NameLength1:SQLSMALLINT; SchemaName:PSQLCHAR; NameLength2:SQLSMALLINT; TableName:PSQLCHAR; NameLength3:SQLSMALLINT; Unique:SQLUSMALLINT; Reserved:SQLUSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib; + function SQLStatisticsW(hstmt: SQLHSTMT; + CatalogName:PSQLWCHAR; NameLength1:SQLSMALLINT; + SchemaName:PSQLWCHAR; NameLength2:SQLSMALLINT; + TableName:PSQLWCHAR; NameLength3:SQLSMALLINT; + Unique:SQLUSMALLINT; + Reserved:SQLUSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib; {$endif} // This function always load dynamic @@ -1598,12 +1731,11 @@ begin end; {$ifdef fpc} + // Ansi versions: pointer(SQLAllocHandle) := GetProcedureAddress(ODBCLibraryHandle,'SQLAllocHandle'); pointer(SQLSetEnvAttr) := GetProcedureAddress(ODBCLibraryHandle,'SQLSetEnvAttr'); pointer(SQLFreeHandle) := GetProcedureAddress(ODBCLibraryHandle,'SQLFreeHandle'); pointer(SQLGetInfo) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetInfo'); - pointer(SQLProcedures) := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedures'); - pointer(SQLColumns) := GetProcedureAddress(ODBCLibraryHandle,'SQLColumns'); pointer(SQLSpecialColumns) := GetProcedureAddress(ODBCLibraryHandle,'SQLSpecialColumns'); pointer(SQLGetDiagRec) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetDiagRec'); pointer(SQLGetDiagField) := GetProcedureAddress(ODBCLibraryHandle,'SQLGetDiagField'); @@ -1639,9 +1771,22 @@ begin pointer(SQLColAttribute) := GetProcedureAddress(ODBCLibraryHandle,'SQLColAttribute'); pointer(SQLEndTran) := GetProcedureAddress(ODBCLibraryHandle,'SQLEndTran'); pointer(SQLTables) := GetProcedureAddress(ODBCLibraryHandle,'SQLTables'); + pointer(SQLColumns) := GetProcedureAddress(ODBCLibraryHandle,'SQLColumns'); pointer(SQLPrimaryKeys) := GetProcedureAddress(ODBCLibraryHandle,'SQLPrimaryKeys'); + pointer(SQLProcedures) := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedures'); pointer(SQLProcedureColumns) := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedureColumns'); pointer(SQLStatistics) := GetProcedureAddress(ODBCLibraryHandle,'SQLStatistics'); + // Unicode versions: + pointer(SQLConnectW) := GetProcedureAddress(ODBCLibraryHandle,'SQLConnectW'); + pointer(SQLDriverConnectW) := GetProcedureAddress(ODBCLibraryHandle,'SQLDriverConnectW'); + pointer(SQLExecDirectW) := GetProcedureAddress(ODBCLibraryHandle,'SQLExecDirectW'); + pointer(SQLPrepareW) := GetProcedureAddress(ODBCLibraryHandle,'SQLPrepareW'); + pointer(SQLDescribeColW) := GetProcedureAddress(ODBCLibraryHandle,'SQLDescribeColW'); + pointer(SQLTablesW) := GetProcedureAddress(ODBCLibraryHandle,'SQLTablesW'); + pointer(SQLColumnsW) := GetProcedureAddress(ODBCLibraryHandle,'SQLColumnsW'); + pointer(SQLProceduresW) := GetProcedureAddress(ODBCLibraryHandle,'SQLProceduresW'); + pointer(SQLPrimaryKeysW) := GetProcedureAddress(ODBCLibraryHandle,'SQLPrimaryKeysW'); + pointer(SQLStatisticsW) := GetProcedureAddress(ODBCLibraryHandle,'SQLStatisticsW'); {$else} SQLAllocHandle := GetProcedureAddress(ODBCLibraryHandle,'SQLAllocHandle'); SQLSetEnvAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLSetEnvAttr');