Browse Source

* Compilable with Delphi

git-svn-id: trunk@6616 -
michael 18 years ago
parent
commit
9adeb284e1
4 changed files with 149 additions and 93 deletions
  1. 2 2
      .gitattributes
  2. 147 91
      packages/base/odbc/odbcsql.inc
  3. 0 0
      packages/base/odbc/odbcsql.pas
  4. 0 0
      packages/base/odbc/odbcsqldyn.pas

+ 2 - 2
.gitattributes

@@ -1861,8 +1861,8 @@ packages/base/odbc/README -text
 packages/base/odbc/fpmake.inc svneol=native#text/plain
 packages/base/odbc/fpmake.inc svneol=native#text/plain
 packages/base/odbc/fpmake.pp svneol=native#text/plain
 packages/base/odbc/fpmake.pp svneol=native#text/plain
 packages/base/odbc/odbcsql.inc svneol=native#text/plain
 packages/base/odbc/odbcsql.inc svneol=native#text/plain
-packages/base/odbc/odbcsql.pp svneol=native#text/plain
-packages/base/odbc/odbcsqldyn.pp svneol=native#text/plain
+packages/base/odbc/odbcsql.pas svneol=native#text/plain
+packages/base/odbc/odbcsqldyn.pas svneol=native#text/plain
 packages/base/odbc/testodbc.mdb -text
 packages/base/odbc/testodbc.mdb -text
 packages/base/odbc/testodbc.pp svneol=native#text/plain
 packages/base/odbc/testodbc.pp svneol=native#text/plain
 packages/base/oracle/Makefile svneol=native#text/plain
 packages/base/oracle/Makefile svneol=native#text/plain

+ 147 - 91
packages/base/odbc/odbcsql.inc

@@ -1,13 +1,23 @@
-
+{$ifdef fpc}
 {$mode objfpc}
 {$mode objfpc}
-{$h+}
 {$macro on}
 {$macro on}
+{$endif}
 
 
+{$h+}
+
+{$ifdef fpc}
  // define ODBC version 3.51 by default
  // define ODBC version 3.51 by default
 {$define ODBCVER:=$0351}
 {$define ODBCVER:=$0351}
 {$if ODBCVER >= $0300}
 {$if ODBCVER >= $0300}
   {$define ODBCVER3}
   {$define ODBCVER3}
 {$endif}
 {$endif}
+{$if ODBCVER >= $0350}
+  {$define ODBCVER35}
+{$endif}
+{$else fpc}
+  {$define ODBCVER3}
+  {$define ODBCVER35}
+{$endif fpc}
 
 
 interface
 interface
 
 
@@ -161,7 +171,7 @@ const
   {$endif}
   {$endif}
   
   
   { Unicode data type codes }
   { Unicode data type codes }
-  {$if ODBCVER <= $0300}
+  {$ifndef ODBCVER3}
   SQL_UNICODE             = -95;
   SQL_UNICODE             = -95;
   SQL_UNICODE_VARCHAR     = -96;
   SQL_UNICODE_VARCHAR     = -96;
   SQL_UNICODE_LONGVARCHAR = -97;
   SQL_UNICODE_LONGVARCHAR = -97;
@@ -223,8 +233,8 @@ const
   SQL_C_USHORT   =  SQL_C_SHORT+SQL_UNSIGNED_OFFSET; // UNSIGNED SMALLINT
   SQL_C_USHORT   =  SQL_C_SHORT+SQL_UNSIGNED_OFFSET; // UNSIGNED SMALLINT
   SQL_C_UTINYINT =  SQL_TINYINT+SQL_UNSIGNED_OFFSET; // UNSIGNED TINYINT
   SQL_C_UTINYINT =  SQL_TINYINT+SQL_UNSIGNED_OFFSET; // UNSIGNED TINYINT
   SQL_C_BOOKMARK = SQL_C_ULONG; // BOOKMARK
   SQL_C_BOOKMARK = SQL_C_ULONG; // BOOKMARK
-
-{$if ODBCVER >= $0350}
+  
+{$ifdef ODBCVER35}
   SQL_C_GUID    = SQL_GUID;
   SQL_C_GUID    = SQL_GUID;
 {$endif}
 {$endif}
 
 
@@ -238,7 +248,8 @@ const
   SQL_C_VARBOOKMARK = SQL_C_BINARY;
   SQL_C_VARBOOKMARK = SQL_C_BINARY;
 {$endif}
 {$endif}
 
 
-  SQL_NO_TOTAL   = -4;
+ SQL_API_SQLDESCRIBEPARAM=58;
+ SQL_NO_TOTAL   = -4;
 
 
 type
 type
   SQL_DATE_STRUCT = packed record
   SQL_DATE_STRUCT = packed record
@@ -1016,176 +1027,176 @@ const
 {$ifdef DYNLOADINGODBC}
 {$ifdef DYNLOADINGODBC}
 
 
 type   tSQLAllocHandle =function(HandleType: SQLSMALLINT;
 type   tSQLAllocHandle =function(HandleType: SQLSMALLINT;
-           InputHandle:SQLHANDLE;Var OutputHandlePtr: SQLHANDLE):SQLRETURN;extdecl;
+           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;extdecl;
+           StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLFreeHandle=function (HandleType:SQLSMALLINT;
 type   TSQLFreeHandle=function (HandleType:SQLSMALLINT;
-           Handle:SQLHANDLE):SQLRETURN;extdecl;
+           Handle:SQLHANDLE):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 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;extdecl;
+           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;
            DiagIdentifier:SQLSMALLINT;DiagInfoPtr:SQLPOINTER;
            DiagIdentifier:SQLSMALLINT;DiagInfoPtr:SQLPOINTER;
-           BufferLength:SQLSMALLINT;var StringLengthPtr:SQLSMALLINT):SQLRETURN;extdecl;
+           BufferLength:SQLSMALLINT;var StringLengthPtr:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLConnect=function (ConnectionHandle:SQLHDBC;
 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;extdecl;
+           Authentication:PSQLCHAR;NameLength3:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
-type   TSQLDisconnect=function(ConnectionHandle:SQLHDBC):SQLRETURN;extdecl;
+type   TSQLDisconnect=function(ConnectionHandle:SQLHDBC):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLDriverConnect=function (hdbc: SQLHDBC;
 type   TSQLDriverConnect=function (hdbc: SQLHDBC;
            hwnd: SQLHWND;szCsin: PChar;
            hwnd: SQLHWND;szCsin: PChar;
            szCLen: SQLSMALLINT;szCsout: PChar;
            szCLen: SQLSMALLINT;szCsout: PChar;
            cbCSMax: SQLSMALLINT;Var cbCsOut: SQLSMALLINT;
            cbCSMax: SQLSMALLINT;Var cbCsOut: SQLSMALLINT;
-           f: SQLUSMALLINT):SQLRETURN;extdecl;
+           f: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLExecDirect=function (StatementHandle:SQLHSTMT;
 type   TSQLExecDirect=function (StatementHandle:SQLHSTMT;
-           StatementText:PSQLCHAR;TextLength:SQLINTEGER):SQLRETURN;extdecl;
+           StatementText:PSQLCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLPrepare=function (StatementHandle:SQLHSTMT;
 type   TSQLPrepare=function (StatementHandle:SQLHSTMT;
-           StatementText:PSQLCHAR;TextLength:SQLINTEGER):SQLRETURN;extdecl;
+           StatementText:PSQLCHAR;TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
-type   TSQLCloseCursor=function (StatementHandle:SQLHSTMT):SQLRETURN;extdecl;
+type   TSQLCloseCursor=function (StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
-type   TSQLExecute=function (StatementHandle:SQLHSTMT):SQLRETURN;extdecl;
+type   TSQLExecute=function (StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
-type   TSQLFetch=function (StatementHandle:SQLHSTMT):SQLRETURN;extdecl;
+type   TSQLFetch=function (StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLNumResultCols=function (StatementHandle:SQLHSTMT;
 type   TSQLNumResultCols=function (StatementHandle:SQLHSTMT;
-           var ColumnCount:SQLSMALLINT):SQLRETURN;extdecl;
+           var ColumnCount:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLDescribeCol=function (StatementHandle:SQLHSTMT;
 type   TSQLDescribeCol=function (StatementHandle:SQLHSTMT;
            ColumnNumber:SQLUSMALLINT;ColumnName:PSQLCHAR;
            ColumnNumber:SQLUSMALLINT;ColumnName:PSQLCHAR;
            BufferLength:SQLSMALLINT;var NameLength:SQLSMALLINT;
            BufferLength:SQLSMALLINT;var NameLength:SQLSMALLINT;
            var DataType:SQLSMALLINT;var ColumnSize:SQLUINTEGER;
            var DataType:SQLSMALLINT;var ColumnSize:SQLUINTEGER;
-           var DecimalDigits:SQLSMALLINT;var Nullable:SQLSMALLINT):SQLRETURN;extdecl;
+           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:SQLINTEGER):SQLRETURN;extdecl;
+           FetchOrientation:SQLSMALLINT;FetchOffset:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLExtendedFetch=function (hstmt:SQLHSTMT;
 type   TSQLExtendedFetch=function (hstmt:SQLHSTMT;
            fFetchType:SQLUSMALLINT;irow:SQLINTEGER;
            fFetchType:SQLUSMALLINT;irow:SQLINTEGER;
-           pcrow:PSQLUINTEGER;rgfRowStatus:PSQLUSMALLINT):SQLRETURN;extdecl;
+           pcrow:PSQLUINTEGER;rgfRowStatus:PSQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLGetData=function (StatementHandle:SQLHSTMT;
 type   TSQLGetData=function (StatementHandle:SQLHSTMT;
            ColumnNumber:SQLUSMALLINT;TargetType:SQLSMALLINT;
            ColumnNumber:SQLUSMALLINT;TargetType:SQLSMALLINT;
            TargetValue:SQLPOINTER;BufferLength:SQLINTEGER;
            TargetValue:SQLPOINTER;BufferLength:SQLINTEGER;
-           StrLen_or_Ind:PSQLINTEGER):SQLRETURN;extdecl;
+           StrLen_or_Ind:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLSetStmtAttr=function (StatementHandle:SQLHSTMT;
 type   TSQLSetStmtAttr=function (StatementHandle:SQLHSTMT;
            Attribute:SQLINTEGER;Value:SQLPOINTER;
            Attribute:SQLINTEGER;Value:SQLPOINTER;
-           StringLength:SQLINTEGER):SQLRETURN;extdecl;
+           StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLGetStmtAttr=function (StatementHandle:SQLHSTMT;
 type   TSQLGetStmtAttr=function (StatementHandle:SQLHSTMT;
            Attribute:SQLINTEGER;Value:SQLPOINTER;
            Attribute:SQLINTEGER;Value:SQLPOINTER;
-           BufferLength:SQLINTEGER;StringLength:PSQLINTEGER):SQLRETURN;extdecl;
+           BufferLength:SQLINTEGER;StringLength:PSQLINTEGER):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;extdecl;
+           BufferLength:SQLSMALLINT;StringLength:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLBulkOperations=function (StatementHandle: SQLHSTMT;
 type   TSQLBulkOperations=function (StatementHandle: SQLHSTMT;
-           Operation:SQLSMALLINT):SQLRETURN;extdecl;
+           Operation:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLPutData=function (StatementHandle:SQLHSTMT;
 type   TSQLPutData=function (StatementHandle:SQLHSTMT;
-           Data:SQLPOINTER;StrLen_or_Ind:SQLINTEGER):SQLRETURN;extdecl;
+           Data:SQLPOINTER;StrLen_or_Ind:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLBindCol=function (StatementHandle:SQLHSTMT;
 type   TSQLBindCol=function (StatementHandle:SQLHSTMT;
            ColumnNumber:SQLUSMALLINT;TargetType:SQLSMALLINT;
            ColumnNumber:SQLUSMALLINT;TargetType:SQLSMALLINT;
            TargetValue:SQLPOINTER;BufferLength:SQLINTEGER;
            TargetValue:SQLPOINTER;BufferLength:SQLINTEGER;
-           StrLen_or_Ind:PSQLINTEGER):SQLRETURN;extdecl;
+           StrLen_or_Ind:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLSetPos=function (hstmt:SQLHSTMT;
 type   TSQLSetPos=function (hstmt:SQLHSTMT;
            irow:SQLUSMALLINT;fOption:SQLUSMALLINT;
            irow:SQLUSMALLINT;fOption:SQLUSMALLINT;
-           fLock:SQLUSMALLINT):SQLRETURN;extdecl;
+           fLock:SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLDataSources=function (EnvironmentHandle:SQLHENV;
 type   TSQLDataSources=function (EnvironmentHandle:SQLHENV;
            Direction:SQLUSMALLINT;ServerName:PSQLCHAR;
            Direction:SQLUSMALLINT;ServerName:PSQLCHAR;
            BufferLength1:SQLSMALLINT;NameLength1:PSQLSMALLINT;
            BufferLength1:SQLSMALLINT;NameLength1:PSQLSMALLINT;
            Description:PSQLCHAR;BufferLength2:SQLSMALLINT;
            Description:PSQLCHAR;BufferLength2:SQLSMALLINT;
-           NameLength2:PSQLSMALLINT):SQLRETURN;extdecl;
+           NameLength2:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLDrivers=function (EnvironmentHandle:SQLHENV;
 type   TSQLDrivers=function (EnvironmentHandle:SQLHENV;
            Direction:SQLUSMALLINT;DriverDescription:PSQLCHAR;
            Direction:SQLUSMALLINT;DriverDescription:PSQLCHAR;
            BufferLength1:SQLSMALLINT;DescriptionLength1:PSQLSMALLINT;
            BufferLength1:SQLSMALLINT;DescriptionLength1:PSQLSMALLINT;
            DriverAttributes:PSQLCHAR;BufferLength2:SQLSMALLINT;
            DriverAttributes:PSQLCHAR;BufferLength2:SQLSMALLINT;
-           AttributesLength2:PSQLSMALLINT):SQLRETURN;extdecl;
+           AttributesLength2:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLSetConnectAttr=function (ConnectionHandle:SQLHDBC;
 type   TSQLSetConnectAttr=function (ConnectionHandle:SQLHDBC;
            Attribute:SQLINTEGER; Value:SQLPOINTER;
            Attribute:SQLINTEGER; Value:SQLPOINTER;
-           StringLength:SQLINTEGER):SQLRETURN;extdecl;
+           StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLGetCursorName=function (StatementHandle:SQLHSTMT;
 type   TSQLGetCursorName=function (StatementHandle:SQLHSTMT;
            CursorName:PSQLCHAR; BufferLength:SQLSMALLINT;
            CursorName:PSQLCHAR; BufferLength:SQLSMALLINT;
-           NameLength:PSQLSMALLINT):SQLRETURN;extdecl;
+           NameLength:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLSetCursorName=function (StatementHandle:SQLHSTMT;
 type   TSQLSetCursorName=function (StatementHandle:SQLHSTMT;
-           CursorName:PSQLCHAR; NameLength:SQLSMALLINT):SQLRETURN;extdecl;
+           CursorName:PSQLCHAR; NameLength:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLRowCount=function (StatementHandle:SQLHSTMT;
 type   TSQLRowCount=function (StatementHandle:SQLHSTMT;
-           Var RowCount:SQLINTEGER):SQLRETURN;extdecl;
+           Var RowCount:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLBindParameter=function (hstmt:SQLHSTMT;
 type   TSQLBindParameter=function (hstmt:SQLHSTMT;
            ipar:SQLUSMALLINT;fParamType:SQLSMALLINT;
            ipar:SQLUSMALLINT;fParamType:SQLSMALLINT;
            fCType:SQLSMALLINT;fSqlType:SQLSMALLINT;
            fCType:SQLSMALLINT;fSqlType:SQLSMALLINT;
            cbColDef:SQLUINTEGER;ibScale:SQLSMALLINT;
            cbColDef:SQLUINTEGER;ibScale:SQLSMALLINT;
            rgbValue:SQLPOINTER;cbValueMax:SQLINTEGER;
            rgbValue:SQLPOINTER;cbValueMax:SQLINTEGER;
-           pcbValue:PSQLINTEGER):SQLRETURN;extdecl;
+           pcbValue:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLFreeStmt=function (StatementHandle:SQLHSTMT;
 type   TSQLFreeStmt=function (StatementHandle:SQLHSTMT;
-           Option:SQLUSMALLINT):SQLRETURN;extdecl;
+           Option:SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLColAttribute=function (StatementHandle:SQLHSTMT;
 type   TSQLColAttribute=function (StatementHandle:SQLHSTMT;
            ColumnNumber:SQLUSMALLINT;FieldIdentifier:SQLUSMALLINT;
            ColumnNumber:SQLUSMALLINT;FieldIdentifier:SQLUSMALLINT;
            CharacterAttribute:PSQLCHAR;BufferLength:SQLSMALLINT;
            CharacterAttribute:PSQLCHAR;BufferLength:SQLSMALLINT;
-           StringLength:PSQLSMALLINT;NumericAttribute:SQLPOINTER):SQLRETURN;extdecl;
+           StringLength:PSQLSMALLINT;NumericAttribute:SQLPOINTER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLEndTran=function (HandleType:SQLSMALLINT;
 type   TSQLEndTran=function (HandleType:SQLSMALLINT;
-           Handle:SQLHANDLE;CompletionType:SQLSMALLINT):SQLRETURN;extdecl;
+           Handle:SQLHANDLE;CompletionType:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLTables=function ( hstmt : SQLHSTMT;
 type   TSQLTables=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;
-           szTableType : PSQLCHAR;cbTableType : SQLSMALLINT ) : SQLRETURN; extdecl;
+           szTableType : PSQLCHAR;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; extdecl;
+           szColumnName : PSQLCHAR;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;
            NameLength1:SQLSMALLINT;SchemaName:PSQLCHAR;
            NameLength1:SQLSMALLINT;SchemaName:PSQLCHAR;
            NameLength2:SQLSMALLINT;TableName:PSQLCHAR;
            NameLength2:SQLSMALLINT;TableName:PSQLCHAR;
            NameLength3:SQLSMALLINT;Scope:SQLUSMALLINT;
            NameLength3:SQLSMALLINT;Scope:SQLUSMALLINT;
-           Nullable:SQLUSMALLINT) : SQLRETURN; extdecl;
+           Nullable:SQLUSMALLINT) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLProcedures=function ( hstmt : SQLHSTMT;
 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; extdecl;
+           szTableName : PSQLCHAR;cbTableName : SQLSMALLINT ) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 type   TSQLPrimaryKeys=function (hstmt : SQLHSTMT;
 type   TSQLPrimaryKeys=function (hstmt : SQLHSTMT;
            CatalogName:PSQLCHAR;NameLength1:SQLSMALLINT;
            CatalogName:PSQLCHAR;NameLength1:SQLSMALLINT;
            SchemaName:PSQLCHAR;NameLength2:SQLSMALLINT;
            SchemaName:PSQLCHAR;NameLength2:SQLSMALLINT;
-           TableName:PSQLCHAR;NameLength3:SQLSMALLINT ):SQLRETURN;extdecl;
+           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; extdecl;
+           ColumnName: PSQLCHAR; NameLength4: SQLSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
 
 
 var    SQLAllocHandle:tSQLAllocHandle;
 var    SQLAllocHandle:tSQLAllocHandle;
 var    SQLSetEnvAttr:tSQLSetEnvAttr;
 var    SQLSetEnvAttr:tSQLSetEnvAttr;
@@ -1235,21 +1246,21 @@ var    odbcversion:word;
   function SQLAllocHandle(
   function SQLAllocHandle(
                HandleType: SQLSMALLINT;
                HandleType: SQLSMALLINT;
                InputHandle:SQLHANDLE;
                InputHandle:SQLHANDLE;
-               Var OutputHandlePtr: SQLHANDLE):SQLRETURN;extdecl;external odbclib;
+               Var OutputHandlePtr: SQLHANDLE):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
   function SQLSetEnvAttr(
   function SQLSetEnvAttr(
                EnvironmentHandle:SQLHENV;
                EnvironmentHandle:SQLHENV;
                Attribute:        SQLINTEGER;
                Attribute:        SQLINTEGER;
                Value:            SQLPOINTER;
                Value:            SQLPOINTER;
-               StringLength:     SQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               StringLength:     SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLGetEnvAttr(
    function SQLGetEnvAttr(
                EnvironmentHandle:SQLHENV;
                EnvironmentHandle:SQLHENV;
                Attribute:SQLINTEGER;
                Attribute:SQLINTEGER;
                Value:SQLPOINTER;
                Value:SQLPOINTER;
                BufferLength:SQLINTEGER;
                BufferLength:SQLINTEGER;
-               StringLength:PSQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               StringLength:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLFreeHandle(
    function SQLFreeHandle(
                HandleType: SQLSMALLINT;
                HandleType: SQLSMALLINT;
-               Handle:     SQLHANDLE):SQLRETURN;extdecl;external odbclib;
+               Handle:     SQLHANDLE):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLGetDiagRec(
    function SQLGetDiagRec(
                HandleType:   SQLSMALLINT;
                HandleType:   SQLSMALLINT;
                Handle:       SQLHANDLE;
                Handle:       SQLHANDLE;
@@ -1258,7 +1269,7 @@ var    odbcversion:word;
                var NativeError: SQLINTEGER;
                var NativeError: SQLINTEGER;
                MessageText:     PSQLCHAR;
                MessageText:     PSQLCHAR;
                BufferLength:    SQLSMALLINT;
                BufferLength:    SQLSMALLINT;
-               var TextLength:  SQLSMALLINT ):SQLRETURN;extdecl;external odbclib;
+               var TextLength:  SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLGetDiagField(
    function SQLGetDiagField(
                HandleType:SQLSMALLINT;
                HandleType:SQLSMALLINT;
                Handle:SQLHANDLE;
                Handle:SQLHANDLE;
@@ -1266,15 +1277,15 @@ var    odbcversion:word;
                DiagIdentifier:SQLSMALLINT;
                DiagIdentifier:SQLSMALLINT;
                DiagInfoPtr:SQLPOINTER;
                DiagInfoPtr:SQLPOINTER;
                BufferLength:SQLSMALLINT;
                BufferLength:SQLSMALLINT;
-               var StringLengthPtr:SQLSMALLINT ):SQLRETURN;extdecl;external odbclib;
+               var StringLengthPtr:SQLSMALLINT ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLConnect(
    function SQLConnect(
                ConnectionHandle:SQLHDBC;
                ConnectionHandle:SQLHDBC;
                ServerName:PSQLCHAR;    NameLength1:SQLSMALLINT;
                ServerName:PSQLCHAR;    NameLength1:SQLSMALLINT;
                UserName:PSQLCHAR;      NameLength2:SQLSMALLINT;
                UserName:PSQLCHAR;      NameLength2:SQLSMALLINT;
                Authentication:PSQLCHAR;NameLength3:SQLSMALLINT
                Authentication:PSQLCHAR;NameLength3:SQLSMALLINT
-              ):SQLRETURN;extdecl;external odbclib;
+              ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLDisconnect(
    function SQLDisconnect(
-               ConnectionHandle:SQLHDBC):SQLRETURN;extdecl;external odbclib;
+               ConnectionHandle:SQLHDBC):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLDriverConnect(
    function SQLDriverConnect(
                hdbc: SQLHDBC;
                hdbc: SQLHDBC;
                hwnd: SQLHWND;
                hwnd: SQLHWND;
@@ -1283,31 +1294,31 @@ var    odbcversion:word;
                szCsout: PChar;
                szCsout: PChar;
                cbCSMax: SQLSMALLINT;
                cbCSMax: SQLSMALLINT;
                Var cbCsOut: SQLSMALLINT;
                Var cbCsOut: SQLSMALLINT;
-               f: SQLUSMALLINT):SQLRETURN;extdecl;external odbclib;
+               f: SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLBrowseConnect(
    function SQLBrowseConnect(
                hdbc : SQLHDBC;
                hdbc : SQLHDBC;
                szConnStrIn :PSQLCHAR;
                szConnStrIn :PSQLCHAR;
                cbConnStrIn: SQLSMALLINT;
                cbConnStrIn: SQLSMALLINT;
                szConnStrOut : PSQLCHAR;
                szConnStrOut : PSQLCHAR;
                cbConnStrOutMax : SQLSMALLINT;
                cbConnStrOutMax : SQLSMALLINT;
-               Var cbConnStrOut : SQLSMALLINT) : SQLRETURN;extdecl;external odbclib;
+               Var cbConnStrOut : SQLSMALLINT) : SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLExecDirect(
    function SQLExecDirect(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                StatementText:  PSQLCHAR;
                StatementText:  PSQLCHAR;
-               TextLength:     SQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               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;extdecl;external odbclib;
+               TextLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLCloseCursor(
    function SQLCloseCursor(
-               StatementHandle:SQLHSTMT):SQLRETURN;extdecl;external odbclib;
+               StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLExecute(
    function SQLExecute(
-               StatementHandle:SQLHSTMT):SQLRETURN;extdecl;external odbclib;
+               StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLFetch(
    function SQLFetch(
-               StatementHandle:SQLHSTMT):SQLRETURN;extdecl;external odbclib;
+               StatementHandle:SQLHSTMT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLNumResultCols(
    function SQLNumResultCols(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
-               var ColumnCount:SQLSMALLINT):SQLRETURN;extdecl;external odbclib;
+               var ColumnCount:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLDescribeCol(
    function SQLDescribeCol(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                ColumnNumber:SQLUSMALLINT;
                ColumnNumber:SQLUSMALLINT;
@@ -1317,60 +1328,60 @@ var    odbcversion:word;
                var DataType:SQLSMALLINT;
                var DataType:SQLSMALLINT;
                var ColumnSize:SQLUINTEGER;
                var ColumnSize:SQLUINTEGER;
                var DecimalDigits:SQLSMALLINT;
                var DecimalDigits:SQLSMALLINT;
-               var Nullable:SQLSMALLINT):SQLRETURN;extdecl;external odbclib;
+               var Nullable:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLFetchScroll(
    function SQLFetchScroll(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                FetchOrientation:SQLSMALLINT;
                FetchOrientation:SQLSMALLINT;
-               FetchOffset:SQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               FetchOffset:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLExtendedFetch(
    function SQLExtendedFetch(
                hstmt:SQLHSTMT;
                hstmt:SQLHSTMT;
                fFetchType:SQLUSMALLINT;
                fFetchType:SQLUSMALLINT;
                irow:SQLINTEGER;
                irow:SQLINTEGER;
                pcrow:PSQLUINTEGER;
                pcrow:PSQLUINTEGER;
-               rgfRowStatus:PSQLUSMALLINT):SQLRETURN;extdecl;external odbclib;
+               rgfRowStatus:PSQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLGetData(
    function SQLGetData(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                ColumnNumber:SQLUSMALLINT;
                ColumnNumber:SQLUSMALLINT;
                TargetType:SQLSMALLINT;
                TargetType:SQLSMALLINT;
                TargetValue:SQLPOINTER;
                TargetValue:SQLPOINTER;
                BufferLength:SQLINTEGER;
                BufferLength:SQLINTEGER;
-               StrLen_or_Ind:PSQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               StrLen_or_Ind:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLSetStmtAttr(
    function SQLSetStmtAttr(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                Attribute:SQLINTEGER;
                Attribute:SQLINTEGER;
                Value:SQLPOINTER;
                Value:SQLPOINTER;
-               StringLength:SQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLGetStmtAttr(
    function SQLGetStmtAttr(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                Attribute:SQLINTEGER;
                Attribute:SQLINTEGER;
                Value:SQLPOINTER;
                Value:SQLPOINTER;
                BufferLength:SQLINTEGER;
                BufferLength:SQLINTEGER;
-               StringLength:PSQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               StringLength:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLGetInfo(
    function SQLGetInfo(
                ConnectionHandle:SQLHDBC;
                ConnectionHandle:SQLHDBC;
                InfoType:SQLUSMALLINT;
                InfoType:SQLUSMALLINT;
                InfoValue:SQLPOINTER;
                InfoValue:SQLPOINTER;
                BufferLength:SQLSMALLINT;
                BufferLength:SQLSMALLINT;
-               StringLength:PSQLSMALLINT):SQLRETURN;extdecl;external odbclib;
+               StringLength:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLBulkOperations(
    function SQLBulkOperations(
                StatementHandle: SQLHSTMT;
                StatementHandle: SQLHSTMT;
-               Operation:SQLSMALLINT):SQLRETURN;extdecl;external odbclib;
+               Operation:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLPutData(
    function SQLPutData(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                Data:SQLPOINTER;
                Data:SQLPOINTER;
-               StrLen_or_Ind:SQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               StrLen_or_Ind:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLBindCol(
    function SQLBindCol(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                ColumnNumber:SQLUSMALLINT;
                ColumnNumber:SQLUSMALLINT;
                TargetType:SQLSMALLINT;
                TargetType:SQLSMALLINT;
                TargetValue:SQLPOINTER;
                TargetValue:SQLPOINTER;
                BufferLength:SQLINTEGER;
                BufferLength:SQLINTEGER;
-               StrLen_or_Ind:PSQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               StrLen_or_Ind:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLSetPos(
    function SQLSetPos(
                hstmt:SQLHSTMT;
                hstmt:SQLHSTMT;
                irow:SQLUSMALLINT;
                irow:SQLUSMALLINT;
                fOption:SQLUSMALLINT;
                fOption:SQLUSMALLINT;
-               fLock:SQLUSMALLINT):SQLRETURN;extdecl;external odbclib;
+               fLock:SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLDataSources(
    function SQLDataSources(
                EnvironmentHandle:SQLHENV;
                EnvironmentHandle:SQLHENV;
                Direction:SQLUSMALLINT;
                Direction:SQLUSMALLINT;
@@ -1379,7 +1390,7 @@ var    odbcversion:word;
                NameLength1:PSQLSMALLINT;
                NameLength1:PSQLSMALLINT;
                Description:PSQLCHAR;
                Description:PSQLCHAR;
                BufferLength2:SQLSMALLINT;
                BufferLength2:SQLSMALLINT;
-               NameLength2:PSQLSMALLINT):SQLRETURN;extdecl;external odbclib;
+               NameLength2:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLDrivers(
    function SQLDrivers(
                EnvironmentHandle:SQLHENV;
                EnvironmentHandle:SQLHENV;
                Direction:SQLUSMALLINT;
                Direction:SQLUSMALLINT;
@@ -1388,22 +1399,22 @@ var    odbcversion:word;
                DescriptionLength1:PSQLSMALLINT;
                DescriptionLength1:PSQLSMALLINT;
                DriverAttributes:PSQLCHAR;
                DriverAttributes:PSQLCHAR;
                BufferLength2:SQLSMALLINT;
                BufferLength2:SQLSMALLINT;
-               AttributesLength2:PSQLSMALLINT):SQLRETURN;extdecl;external odbclib;
+               AttributesLength2:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLSetConnectAttr(
    function SQLSetConnectAttr(
                ConnectionHandle:SQLHDBC;
                ConnectionHandle:SQLHDBC;
                Attribute:SQLINTEGER; Value:SQLPOINTER;
                Attribute:SQLINTEGER; Value:SQLPOINTER;
-               StringLength:SQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               StringLength:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLGetCursorName(
    function SQLGetCursorName(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                CursorName:PSQLCHAR; BufferLength:SQLSMALLINT;
                CursorName:PSQLCHAR; BufferLength:SQLSMALLINT;
-               NameLength:PSQLSMALLINT):SQLRETURN;extdecl;external odbclib;
+               NameLength:PSQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLSetCursorName(
    function SQLSetCursorName(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                CursorName:PSQLCHAR; NameLength:SQLSMALLINT
                CursorName:PSQLCHAR; NameLength:SQLSMALLINT
-               ):SQLRETURN;extdecl;external odbclib;
+               ):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLRowCount(
    function SQLRowCount(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
-               Var RowCount:SQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               Var RowCount:SQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLBindParameter(
    function SQLBindParameter(
                hstmt:SQLHSTMT;
                hstmt:SQLHSTMT;
                ipar:SQLUSMALLINT;
                ipar:SQLUSMALLINT;
@@ -1414,10 +1425,10 @@ var    odbcversion:word;
                ibScale:SQLSMALLINT;
                ibScale:SQLSMALLINT;
                rgbValue:SQLPOINTER;
                rgbValue:SQLPOINTER;
                cbValueMax:SQLINTEGER;
                cbValueMax:SQLINTEGER;
-               pcbValue:PSQLINTEGER):SQLRETURN;extdecl;external odbclib;
+               pcbValue:PSQLINTEGER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLFreeStmt(
    function SQLFreeStmt(
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
-               Option:SQLUSMALLINT):SQLRETURN;extdecl;external odbclib;
+               Option:SQLUSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
    function SQLColAttribute (
    function SQLColAttribute (
                StatementHandle:SQLHSTMT;
                StatementHandle:SQLHSTMT;
                ColumnNumber:SQLUSMALLINT;
                ColumnNumber:SQLUSMALLINT;
@@ -1425,12 +1436,12 @@ var    odbcversion:word;
                CharacterAttribute:PSQLCHAR;
                CharacterAttribute:PSQLCHAR;
                BufferLength:SQLSMALLINT;
                BufferLength:SQLSMALLINT;
                StringLength:PSQLSMALLINT;
                StringLength:PSQLSMALLINT;
-               NumericAttribute:SQLPOINTER):SQLRETURN;extdecl;external odbclib;
+               NumericAttribute:SQLPOINTER):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
 {$ifdef ODBCVER3}
 {$ifdef ODBCVER3}
    function SQLEndTran(
    function SQLEndTran(
                HandleType:SQLSMALLINT;
                HandleType:SQLSMALLINT;
                Handle:SQLHANDLE;
                Handle:SQLHANDLE;
-               CompletionType:SQLSMALLINT):SQLRETURN;extdecl;external odbclib;
+               CompletionType:SQLSMALLINT):SQLRETURN;{$ifdef fpc} extdecl {$else} stdcall {$endif};external odbclib;
 {$endif}
 {$endif}
    function SQLTables( hstmt : SQLHSTMT;
    function SQLTables( hstmt : SQLHSTMT;
                 szTableQualifier : PSQLCHAR;
                 szTableQualifier : PSQLCHAR;
@@ -1440,7 +1451,7 @@ var    odbcversion:word;
                 szTableName : PSQLCHAR;
                 szTableName : PSQLCHAR;
                 cbTableName : SQLSMALLINT;
                 cbTableName : SQLSMALLINT;
                 szTableType : PSQLCHAR;
                 szTableType : PSQLCHAR;
-                cbTableType : SQLSMALLINT ) : SQLRETURN; extdecl; external odbclib;
+                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;
@@ -1449,7 +1460,7 @@ var    odbcversion:word;
                 szTableName : PSQLCHAR;
                 szTableName : PSQLCHAR;
                 cbTableName : SQLSMALLINT;
                 cbTableName : SQLSMALLINT;
                 szColumnName : PSQLCHAR;
                 szColumnName : PSQLCHAR;
-                cbColumnName : SQLSMALLINT ) : SQLRETURN; extdecl; external odbclib;
+                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;
@@ -1459,24 +1470,24 @@ var    odbcversion:word;
                 TableName:PSQLCHAR;
                 TableName:PSQLCHAR;
                 NameLength3:SQLSMALLINT;
                 NameLength3:SQLSMALLINT;
                 Scope:SQLUSMALLINT;
                 Scope:SQLUSMALLINT;
-                Nullable:SQLUSMALLINT) : SQLRETURN; extdecl; external odbclib;
+                Nullable:SQLUSMALLINT) : SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif}; external odbclib;
    function SQLProcedures( hstmt : SQLHSTMT;
    function SQLProcedures( hstmt : SQLHSTMT;
                 szTableQualifier : PSQLCHAR;
                 szTableQualifier : PSQLCHAR;
                 cbTableQualifier : SQLSMALLINT;
                 cbTableQualifier : SQLSMALLINT;
                 szTableOwner : PSQLCHAR;
                 szTableOwner : PSQLCHAR;
                 cbTableOwner : SQLSMALLINT;
                 cbTableOwner : SQLSMALLINT;
                 szTableName : PSQLCHAR;
                 szTableName : PSQLCHAR;
-                cbTableName : SQLSMALLINT ) : SQLRETURN; extdecl; external odbclib;
+                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;extdecl;external odbclib;
+                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; extdecl;
+                ColumnName: PSQLCHAR; NameLength4: SQLSMALLINT): SQLRETURN; {$ifdef fpc} extdecl {$else} stdcall {$endif};
                 external odbclib;
                 external odbclib;
 {$endif}
 {$endif}
 // This function always load dynamic
 // This function always load dynamic
@@ -1514,6 +1525,7 @@ begin
       Raise EInOutError.Create('Can not load ODBC client. Is it installed? ('+odbclib+')');
       Raise EInOutError.Create('Can not load ODBC client. Is it installed? ('+odbclib+')');
       end;
       end;
 
 
+{$ifdef fpc}
     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');
@@ -1555,7 +1567,51 @@ begin
     pointer(SQLTables) := GetProcedureAddress(ODBCLibraryHandle,'SQLTables');
     pointer(SQLTables) := GetProcedureAddress(ODBCLibraryHandle,'SQLTables');
     pointer(SQLPrimaryKeys) := GetProcedureAddress(ODBCLibraryHandle,'SQLPrimaryKeys');
     pointer(SQLPrimaryKeys) := GetProcedureAddress(ODBCLibraryHandle,'SQLPrimaryKeys');
     pointer(SQLProcedureColumns) := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedureColumns');
     pointer(SQLProcedureColumns) := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedureColumns');
-
+{$else}
+    SQLAllocHandle := GetProcedureAddress(ODBCLibraryHandle,'SQLAllocHandle');
+    SQLSetEnvAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLSetEnvAttr');
+    SQLFreeHandle := GetProcedureAddress(ODBCLibraryHandle,'SQLFreeHandle');
+    SQLGetInfo := GetProcedureAddress(ODBCLibraryHandle,'SQLGetInfo');
+    SQLProcedures := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedures');
+    SQLColumns := GetProcedureAddress(ODBCLibraryHandle,'SQLColumns');
+    SQLSpecialColumns := GetProcedureAddress(ODBCLibraryHandle,'SQLSpecialColumns');
+    SQLGetDiagRec := GetProcedureAddress(ODBCLibraryHandle,'SQLGetDiagRec');
+    SQLGetDiagField := GetProcedureAddress(ODBCLibraryHandle,'SQLGetDiagField');
+    SQLConnect := GetProcedureAddress(ODBCLibraryHandle,'SQLConnect');
+    SQLDisconnect := GetProcedureAddress(ODBCLibraryHandle,'SQLDisconnect');
+    SQLDriverConnect := GetProcedureAddress(ODBCLibraryHandle,'SQLDriverConnect');
+    SQLExecDirect := GetProcedureAddress(ODBCLibraryHandle,'SQLExecDirect');
+    SQLPrepare := GetProcedureAddress(ODBCLibraryHandle,'SQLPrepare');
+    SQLCloseCursor := GetProcedureAddress(ODBCLibraryHandle,'SQLCloseCursor');
+    SQLExecute := GetProcedureAddress(ODBCLibraryHandle,'SQLExecute');
+    SQLFetch := GetProcedureAddress(ODBCLibraryHandle,'SQLFetch');
+    SQLNumResultCols := GetProcedureAddress(ODBCLibraryHandle,'SQLNumResultCols');
+    SQLDescribeCol := GetProcedureAddress(ODBCLibraryHandle,'SQLDescribeCol');
+    SQLFetchScroll := GetProcedureAddress(ODBCLibraryHandle,'SQLFetchScroll');
+    SQLExtendedFetch := GetProcedureAddress(ODBCLibraryHandle,'SQLExtendedFetch');
+    SQLGetData := GetProcedureAddress(ODBCLibraryHandle,'SQLGetData');
+    SQLSetStmtAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLSetStmtAttr');
+    SQLGetStmtAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLGetStmtAttr');
+    SQLBulkOperations := GetProcedureAddress(ODBCLibraryHandle,'SQLBulkOperations');
+    SQLPutData := GetProcedureAddress(ODBCLibraryHandle,'SQLPutData');
+    SQLBindCol := GetProcedureAddress(ODBCLibraryHandle,'SQLBindCol');
+    SQLSetPos := GetProcedureAddress(ODBCLibraryHandle,'SQLSetPos');
+    SQLDataSources := GetProcedureAddress(ODBCLibraryHandle,'SQLDataSources');
+    SQLDrivers := GetProcedureAddress(ODBCLibraryHandle,'SQLDrivers');
+    SQLSetConnectAttr := GetProcedureAddress(ODBCLibraryHandle,'SQLSetConnectAttr');
+    SQLGetCursorName := GetProcedureAddress(ODBCLibraryHandle,'SQLGetCursorName');
+    SQLSetCursorName := GetProcedureAddress(ODBCLibraryHandle,'SQLSetCursorName');
+    SQLRowCount := GetProcedureAddress(ODBCLibraryHandle,'SQLRowCount');
+    SQLBindParameter := GetProcedureAddress(ODBCLibraryHandle,'SQLBindParameter');
+    SQLGetFunctions := GetProcedureAddress(ODBCLibraryHandle,'SQLGetFunctions');
+    SQLDescribeParam :=GetProcedureAddress(ODBCLibraryHandle,'SQLDescribeParam');
+    SQLFreeStmt := GetProcedureAddress(ODBCLibraryHandle,'SQLFreeStmt');
+    SQLColAttribute := GetProcedureAddress(ODBCLibraryHandle,'SQLColAttribute');
+    SQLEndTran := GetProcedureAddress(ODBCLibraryHandle,'SQLEndTran');
+    SQLTables := GetProcedureAddress(ODBCLibraryHandle,'SQLTables');
+    SQLPrimaryKeys := GetProcedureAddress(ODBCLibraryHandle,'SQLPrimaryKeys');
+    SQLProcedureColumns := GetProcedureAddress(ODBCLibraryHandle,'SQLProcedureColumns');
+{$endif}
     end;
     end;
 end;
 end;
 
 

+ 0 - 0
packages/base/odbc/odbcsql.pp → packages/base/odbc/odbcsql.pas


+ 0 - 0
packages/base/odbc/odbcsqldyn.pp → packages/base/odbc/odbcsqldyn.pas