* Patch from Laco to add some widechar ODBC functions

git-svn-id: trunk@34867 -
This commit is contained in:
michael 2016-11-11 09:22:49 +00:00
parent ab566789a8
commit 6cccd87f16

View File

@ -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');