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