diff --git a/src/interfaces/odbc/GNUmakefile b/src/interfaces/odbc/GNUmakefile index 4d02a8d60c76c5dbafdec1d026541fdb7fa045f2..18ba94470e745eb8abb1fcc7d7d75bc761a75a3d 100644 --- a/src/interfaces/odbc/GNUmakefile +++ b/src/interfaces/odbc/GNUmakefile @@ -2,7 +2,7 @@ # # GNUMakefile for psqlodbc (Postgres ODBC driver) # -# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/GNUmakefile,v 1.16 2001/05/11 01:46:33 momjian Exp $ +# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/GNUmakefile,v 1.17 2001/08/21 05:21:09 inoue Exp $ # #------------------------------------------------------------------------- @@ -21,7 +21,7 @@ override CPPFLAGS := -I$(srcdir) $(CPPFLAGS) -DHAVE_CONFIG_H -DODBCINSTDIR='"$(o OBJS = info.o bind.o columninfo.o connection.o convert.o drvconn.o \ environ.o execute.o lobj.o misc.o options.o \ pgtypes.o psqlodbc.o qresult.o results.o socket.o parse.o statement.o \ - gpps.o tuple.o tuplelist.o dlg_specific.o $(OBJX) + gpps.o tuple.o tuplelist.o dlg_specific.o odbcapi.o $(OBJX) ifdef MULTIBYTE OBJS += multibyte.o diff --git a/src/interfaces/odbc/convert.c b/src/interfaces/odbc/convert.c index a87f84edb28351219e89d625d0e0e07b501fb100..12d5ddf1b8a48c559f0f50a333e2f3dbae662145 100644 --- a/src/interfaces/odbc/convert.c +++ b/src/interfaces/odbc/convert.c @@ -1969,8 +1969,16 @@ convert_from_pgbinary(unsigned char *value, unsigned char *rgbValue, int cbValue { if (value[i] == '\\') { - rgbValue[o] = conv_from_octal(&value[i]); - i += 4; + if (value[i + 1] == '\\') + { + rgbValue[o] = value[i]; + i += 2; + } + else + { + rgbValue[o] = conv_from_octal(&value[i]); + i += 4; + } } else rgbValue[o] = value[i++]; diff --git a/src/interfaces/odbc/info.c b/src/interfaces/odbc/info.c index 3da2708d3c6df518e2be5c77c7d9ac0076f0918c..79854d6cd2ed8b6e496c01947907a6489e517004 100644 --- a/src/interfaces/odbc/info.c +++ b/src/interfaces/odbc/info.c @@ -682,7 +682,6 @@ PGAPI_GetInfo( break; default: -return PGAPI_GetInfo30(hdbc, fInfoType, rgbInfoValue, cbInfoValueMax,pcbInfoValue); /* unrecognized key */ conn->errormsg = "Unrecognized key passed to PGAPI_GetInfo."; conn->errornumber = CONN_NOT_IMPLEMENTED_ERROR; diff --git a/src/interfaces/odbc/isql.h b/src/interfaces/odbc/isql.h index d8a3c867fc2420448aba61319309fa55e2a2f73e..5a5a8afafd44b5134f6f617a100e5566a9a86227 100644 --- a/src/interfaces/odbc/isql.h +++ b/src/interfaces/odbc/isql.h @@ -26,7 +26,7 @@ typedef signed short RETCODE; #define SQL_API EXPORT CALLBACK #endif -#define ODBCVER 0x0250 +/*#define ODBCVER 0x0250 */ #define SQL_MAX_MESSAGE_LENGTH 512 #define SQL_MAX_DSN_LENGTH 32 diff --git a/src/interfaces/odbc/odbcapi.c b/src/interfaces/odbc/odbcapi.c index d1ab5ce33f3fc3789d99eaf47f62faab1db613b3..a69c3d1a944449abfa12fe678a7a0e52871dc8dc 100644 --- a/src/interfaces/odbc/odbcapi.c +++ b/src/interfaces/odbc/odbcapi.c @@ -31,8 +31,10 @@ #endif #include "psqlodbc.h" +#ifdef WIN32 #undef ODBCVER #define ODBCVER 0x3000 +#endif #include #include @@ -47,29 +49,29 @@ #include "connection.h" #include "statement.h" -SQLRETURN SQL_API SQLAllocConnect(SQLHENV EnvironmentHandle, - SQLHDBC *ConnectionHandle) +RETCODE SQL_API SQLAllocConnect(HENV EnvironmentHandle, + HDBC FAR *ConnectionHandle) { mylog("[SQLAllocConnect]"); return PGAPI_AllocConnect(EnvironmentHandle, ConnectionHandle); } -SQLRETURN SQL_API SQLAllocEnv(SQLHENV *EnvironmentHandle) +RETCODE SQL_API SQLAllocEnv(HENV FAR *EnvironmentHandle) { mylog("[SQLAllocEnv]"); return PGAPI_AllocEnv(EnvironmentHandle); } -SQLRETURN SQL_API SQLAllocStmt(SQLHDBC ConnectionHandle, - SQLHSTMT *StatementHandle) +RETCODE SQL_API SQLAllocStmt(HDBC ConnectionHandle, + HSTMT *StatementHandle) { mylog("[SQLAllocStmt]"); return PGAPI_AllocStmt(ConnectionHandle, StatementHandle); } -SQLRETURN SQL_API SQLBindCol(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLBindCol(HSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, - SQLPOINTER TargetValue, SQLINTEGER BufferLength, + PTR TargetValue, SQLINTEGER BufferLength, SQLINTEGER *StrLen_or_Ind) { mylog("[SQLBindCol]"); @@ -77,13 +79,13 @@ SQLRETURN SQL_API SQLBindCol(SQLHSTMT StatementHandle, TargetType, TargetValue, BufferLength, StrLen_or_Ind); } -SQLRETURN SQL_API SQLCancel(SQLHSTMT StatementHandle) +RETCODE SQL_API SQLCancel(HSTMT StatementHandle) { mylog("[SQLCancel]"); return PGAPI_Cancel(StatementHandle); } -SQLRETURN SQL_API SQLColumns(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLColumns(HSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, @@ -96,7 +98,7 @@ SQLRETURN SQL_API SQLColumns(SQLHSTMT StatementHandle, } -SQLRETURN SQL_API SQLConnect(SQLHDBC ConnectionHandle, +RETCODE SQL_API SQLConnect(HDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3) @@ -106,7 +108,7 @@ SQLRETURN SQL_API SQLConnect(SQLHDBC ConnectionHandle, UserName, NameLength2, Authentication, NameLength3); } -SQLRETURN SQL_API SQLDriverConnect(HDBC hdbc, +RETCODE SQL_API SQLDriverConnect(HDBC hdbc, HWND hwnd, UCHAR FAR *szConnStrIn, SWORD cbConnStrIn, @@ -119,8 +121,8 @@ SQLRETURN SQL_API SQLDriverConnect(HDBC hdbc, return PGAPI_DriverConnect(hdbc, hwnd, szConnStrIn, cbConnStrIn, szConnStrOut, cbConnStrOutMax, pcbConnStrOut, fDriverCompletion); } -SQLRETURN SQL_API SQLBrowseConnect( - SQLHDBC hdbc, +RETCODE SQL_API SQLBrowseConnect( + HDBC hdbc, SQLCHAR *szConnStrIn, SQLSMALLINT cbConnStrIn, SQLCHAR *szConnStrOut, @@ -132,7 +134,7 @@ SQLRETURN SQL_API SQLBrowseConnect( szConnStrOut, cbConnStrOutMax, pcbConnStrOut); } -SQLRETURN SQL_API SQLDataSources(SQLHENV EnvironmentHandle, +RETCODE SQL_API SQLDataSources(HENV EnvironmentHandle, SQLUSMALLINT Direction, SQLCHAR *ServerName, SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1, SQLCHAR *Description, SQLSMALLINT BufferLength2, @@ -147,7 +149,7 @@ SQLRETURN SQL_API SQLDataSources(SQLHENV EnvironmentHandle, return SQL_ERROR; } -SQLRETURN SQL_API SQLDescribeCol(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLDescribeCol(HSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, SQLSMALLINT *DataType, SQLUINTEGER *ColumnSize, @@ -159,14 +161,14 @@ SQLRETURN SQL_API SQLDescribeCol(SQLHSTMT StatementHandle, DataType, ColumnSize, DecimalDigits, Nullable); } -SQLRETURN SQL_API SQLDisconnect(SQLHDBC ConnectionHandle) +RETCODE SQL_API SQLDisconnect(HDBC ConnectionHandle) { mylog("[SQLDisconnect]"); return PGAPI_Disconnect(ConnectionHandle); } -SQLRETURN SQL_API SQLError(SQLHENV EnvironmentHandle, - SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle, +RETCODE SQL_API SQLError(HENV EnvironmentHandle, + HDBC ConnectionHandle, HSTMT StatementHandle, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength) @@ -176,20 +178,20 @@ SQLRETURN SQL_API SQLError(SQLHENV EnvironmentHandle, Sqlstate, NativeError, MessageText, BufferLength, TextLength); } -SQLRETURN SQL_API SQLExecDirect(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLExecDirect(HSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) { mylog("[SQLExecDirect]"); return PGAPI_ExecDirect(StatementHandle, StatementText, TextLength); } -SQLRETURN SQL_API SQLExecute(SQLHSTMT StatementHandle) +RETCODE SQL_API SQLExecute(HSTMT StatementHandle) { mylog("[SQLExecute]"); return PGAPI_Execute(StatementHandle); } -SQLRETURN SQL_API SQLFetch(SQLHSTMT StatementHandle) +RETCODE SQL_API SQLFetch(HSTMT StatementHandle) { static char *func = "SQLFetch"; #if (ODBCVER >= 0x3000) @@ -209,32 +211,32 @@ SQLRETURN SQL_API SQLFetch(SQLHSTMT StatementHandle) return PGAPI_Fetch(StatementHandle); } -SQLRETURN SQL_API SQLFreeConnect(SQLHDBC ConnectionHandle) +RETCODE SQL_API SQLFreeConnect(HDBC ConnectionHandle) { mylog("[SQLFreeStmt]"); return PGAPI_FreeConnect(ConnectionHandle); } -SQLRETURN SQL_API SQLFreeEnv(SQLHENV EnvironmentHandle) +RETCODE SQL_API SQLFreeEnv(HENV EnvironmentHandle) { mylog("[SQLFreeEnv]"); return PGAPI_FreeEnv(EnvironmentHandle); } -SQLRETURN SQL_API SQLFreeStmt(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLFreeStmt(HSTMT StatementHandle, SQLUSMALLINT Option) { mylog("[SQLFreeStmt]"); return PGAPI_FreeStmt(StatementHandle, Option); } -SQLRETURN SQL_API SQLGetConnectOption(SQLHDBC ConnectionHandle, - SQLUSMALLINT Option, SQLPOINTER Value) +RETCODE SQL_API SQLGetConnectOption(HDBC ConnectionHandle, + SQLUSMALLINT Option, PTR Value) { mylog("[SQLGetConnectOption]"); return PGAPI_GetConnectOption(ConnectionHandle, Option, Value); } -SQLRETURN SQL_API SQLGetCursorName(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLGetCursorName(HSTMT StatementHandle, SQLCHAR *CursorName, SQLSMALLINT BufferLength, SQLSMALLINT *NameLength) { @@ -243,9 +245,9 @@ SQLRETURN SQL_API SQLGetCursorName(SQLHSTMT StatementHandle, NameLength); } -SQLRETURN SQL_API SQLGetData(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLGetData(HSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, - SQLPOINTER TargetValue, SQLINTEGER BufferLength, + PTR TargetValue, SQLINTEGER BufferLength, SQLINTEGER *StrLen_or_Ind) { mylog("[SQLGetData]"); @@ -253,7 +255,7 @@ SQLRETURN SQL_API SQLGetData(SQLHSTMT StatementHandle, TargetValue, BufferLength, StrLen_or_Ind); } -SQLRETURN SQL_API SQLGetFunctions(SQLHDBC ConnectionHandle, +RETCODE SQL_API SQLGetFunctions(HDBC ConnectionHandle, SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported) { mylog("[SQLGetFunctions"); @@ -263,82 +265,93 @@ SQLRETURN SQL_API SQLGetFunctions(SQLHDBC ConnectionHandle, #endif return PGAPI_GetFunctions(ConnectionHandle, FunctionId, Supported); } -SQLRETURN SQL_API SQLGetInfo(SQLHDBC ConnectionHandle, - SQLUSMALLINT InfoType, SQLPOINTER InfoValue, +RETCODE SQL_API SQLGetInfo(HDBC ConnectionHandle, + SQLUSMALLINT InfoType, PTR InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) { +#if (ODBCVER >= 0x3000) + RETCODE ret; + mylog("[SQLGetInfo(30)]"); + if ((ret = PGAPI_GetInfo(ConnectionHandle, InfoType, InfoValue, + BufferLength, StringLength)) == SQL_ERROR) + return PGAPI_GetInfo30(ConnectionHandle, InfoType, InfoValue, + BufferLength, StringLength); + else + return ret; +#else mylog("[SQLGetInfo]"); return PGAPI_GetInfo(ConnectionHandle, InfoType, InfoValue, BufferLength, StringLength); +#endif } -SQLRETURN SQL_API SQLGetStmtOption(SQLHSTMT StatementHandle, - SQLUSMALLINT Option, SQLPOINTER Value) +RETCODE SQL_API SQLGetStmtOption(HSTMT StatementHandle, + SQLUSMALLINT Option, PTR Value) { mylog("[SQLGetStmtOption]"); return PGAPI_GetStmtOption(StatementHandle, Option, Value); } -SQLRETURN SQL_API SQLGetTypeInfo(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLGetTypeInfo(HSTMT StatementHandle, SQLSMALLINT DataType) { mylog("[SQLGetTypeInfo]"); return PGAPI_GetTypeInfo(StatementHandle,DataType); } -SQLRETURN SQL_API SQLNumResultCols(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLNumResultCols(HSTMT StatementHandle, SQLSMALLINT *ColumnCount) { mylog("[SQLNumResultCols]"); return PGAPI_NumResultCols(StatementHandle, ColumnCount); } -SQLRETURN SQL_API SQLParamData(SQLHSTMT StatementHandle, - SQLPOINTER *Value) +RETCODE SQL_API SQLParamData(HSTMT StatementHandle, + PTR *Value) { mylog("[SQLParamData]"); return PGAPI_ParamData(StatementHandle, Value); } -SQLRETURN SQL_API SQLPrepare(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLPrepare(HSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength) { mylog("[SQLPrepare]"); return PGAPI_Prepare(StatementHandle, StatementText, TextLength); } -SQLRETURN SQL_API SQLPutData(SQLHSTMT StatementHandle, - SQLPOINTER Data, SQLINTEGER StrLen_or_Ind) +RETCODE SQL_API SQLPutData(HSTMT StatementHandle, + PTR Data, SQLINTEGER StrLen_or_Ind) { mylog("[SQLPutData]"); return PGAPI_PutData(StatementHandle, Data, StrLen_or_Ind); } -SQLRETURN SQL_API SQLRowCount(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLRowCount(HSTMT StatementHandle, SQLINTEGER *RowCount) { mylog("[SQLRowCount]"); return PGAPI_RowCount(StatementHandle, RowCount); } -SQLRETURN SQL_API SQLSetConnectOption(SQLHDBC ConnectionHandle, +RETCODE SQL_API SQLSetConnectOption(HDBC ConnectionHandle, SQLUSMALLINT Option, SQLUINTEGER Value) { mylog("[SQLSetConnectionOption]"); return PGAPI_SetConnectOption(ConnectionHandle, Option, Value); } -SQLRETURN SQL_API SQLSetCursorName(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLSetCursorName(HSTMT StatementHandle, SQLCHAR *CursorName, SQLSMALLINT NameLength) { mylog("[SQLSetCursorName]"); return PGAPI_SetCursorName(StatementHandle, CursorName, NameLength); } -SQLRETURN SQL_API SQLSetParam(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLSetParam(HSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType, SQLSMALLINT ParameterType, SQLUINTEGER LengthPrecision, - SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, + SQLSMALLINT ParameterScale, PTR ParameterValue, SQLINTEGER *StrLen_or_Ind) { mylog("[SQLSetParam]"); @@ -350,14 +363,14 @@ SQLRETURN SQL_API SQLSetParam(SQLHSTMT StatementHandle, return SQL_ERROR; } -SQLRETURN SQL_API SQLSetStmtOption(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLSetStmtOption(HSTMT StatementHandle, SQLUSMALLINT Option, SQLUINTEGER Value) { mylog("[SQLSetStmtOption]"); return PGAPI_SetStmtOption(StatementHandle, Option, Value); } -SQLRETURN SQL_API SQLSpecialColumns(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLSpecialColumns(HSTMT StatementHandle, SQLUSMALLINT IdentifierType, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, @@ -370,7 +383,7 @@ SQLRETURN SQL_API SQLSpecialColumns(SQLHSTMT StatementHandle, Scope, Nullable); } -SQLRETURN SQL_API SQLStatistics(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLStatistics(HSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, @@ -382,7 +395,7 @@ SQLRETURN SQL_API SQLStatistics(SQLHSTMT StatementHandle, Reserved); } -SQLRETURN SQL_API SQLTables(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLTables(HSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, @@ -394,18 +407,18 @@ SQLRETURN SQL_API SQLTables(SQLHSTMT StatementHandle, TableType, NameLength4); } -SQLRETURN SQL_API SQLTransact(SQLHENV EnvironmentHandle, - SQLHDBC ConnectionHandle, SQLUSMALLINT CompletionType) +RETCODE SQL_API SQLTransact(HENV EnvironmentHandle, + HDBC ConnectionHandle, SQLUSMALLINT CompletionType) { mylog("[SQLTransact]"); return PGAPI_Transact(EnvironmentHandle, ConnectionHandle, CompletionType); } -SQLRETURN SQL_API SQLColAttributes( - SQLHSTMT hstmt, +RETCODE SQL_API SQLColAttributes( + HSTMT hstmt, SQLUSMALLINT icol, SQLUSMALLINT fDescType, - SQLPOINTER rgbDesc, + PTR rgbDesc, SQLSMALLINT cbDescMax, SQLSMALLINT *pcbDesc, SQLINTEGER *pfDesc) @@ -415,8 +428,8 @@ SQLRETURN SQL_API SQLColAttributes( cbDescMax, pcbDesc, pfDesc); } -SQLRETURN SQL_API SQLColumnPrivileges( - SQLHSTMT hstmt, +RETCODE SQL_API SQLColumnPrivileges( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, @@ -432,8 +445,8 @@ SQLRETURN SQL_API SQLColumnPrivileges( szColumnName, cbColumnName); } -SQLRETURN SQL_API SQLDescribeParam( - SQLHSTMT hstmt, +RETCODE SQL_API SQLDescribeParam( + HSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT *pfSqlType, SQLUINTEGER *pcbParamDef, @@ -445,8 +458,8 @@ SQLRETURN SQL_API SQLDescribeParam( pibScale, pfNullable); } -SQLRETURN SQL_API SQLExtendedFetch( - SQLHSTMT hstmt, +RETCODE SQL_API SQLExtendedFetch( + HSTMT hstmt, SQLUSMALLINT fFetchType, SQLINTEGER irow, SQLUINTEGER *pcrow, @@ -456,8 +469,8 @@ SQLRETURN SQL_API SQLExtendedFetch( return PGAPI_ExtendedFetch(hstmt, fFetchType, irow, pcrow, rgfRowStatus); } -SQLRETURN SQL_API SQLForeignKeys( - SQLHSTMT hstmt, +RETCODE SQL_API SQLForeignKeys( + HSTMT hstmt, SQLCHAR *szPkCatalogName, SQLSMALLINT cbPkCatalogName, SQLCHAR *szPkSchemaName, @@ -478,14 +491,14 @@ SQLRETURN SQL_API SQLForeignKeys( szFkSchemaName, cbFkSchemaName, szFkTableName, cbFkTableName); } -SQLRETURN SQL_API SQLMoreResults(SQLHSTMT hstmt) +RETCODE SQL_API SQLMoreResults(HSTMT hstmt) { mylog("[SQLMoreResults]"); return PGAPI_MoreResults(hstmt); } -SQLRETURN SQL_API SQLNativeSql( - SQLHDBC hdbc, +RETCODE SQL_API SQLNativeSql( + HDBC hdbc, SQLCHAR *szSqlStrIn, SQLINTEGER cbSqlStrIn, SQLCHAR *szSqlStr, @@ -497,16 +510,16 @@ SQLRETURN SQL_API SQLNativeSql( cbSqlStrMax, pcbSqlStr); } -SQLRETURN SQL_API SQLNumParams( - SQLHSTMT hstmt, +RETCODE SQL_API SQLNumParams( + HSTMT hstmt, SQLSMALLINT *pcpar) { mylog("[SQLNumParams]"); return PGAPI_NumParams(hstmt, pcpar); } -SQLRETURN SQL_API SQLParamOptions( - SQLHSTMT hstmt, +RETCODE SQL_API SQLParamOptions( + HSTMT hstmt, SQLUINTEGER crow, SQLUINTEGER *pirow) { @@ -514,8 +527,8 @@ SQLRETURN SQL_API SQLParamOptions( return PGAPI_ParamOptions(hstmt, crow, pirow); } -SQLRETURN SQL_API SQLPrimaryKeys( - SQLHSTMT hstmt, +RETCODE SQL_API SQLPrimaryKeys( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, @@ -528,8 +541,8 @@ SQLRETURN SQL_API SQLPrimaryKeys( szSchemaName, cbSchemaName, szTableName, cbTableName); } -SQLRETURN SQL_API SQLProcedureColumns( - SQLHSTMT hstmt, +RETCODE SQL_API SQLProcedureColumns( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, @@ -545,8 +558,8 @@ SQLRETURN SQL_API SQLProcedureColumns( szColumnName, cbColumnName); } -SQLRETURN SQL_API SQLProcedures( - SQLHSTMT hstmt, +RETCODE SQL_API SQLProcedures( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, @@ -559,8 +572,8 @@ SQLRETURN SQL_API SQLProcedures( szSchemaName, cbSchemaName, szProcName, cbProcName); } -SQLRETURN SQL_API SQLSetPos( - SQLHSTMT hstmt, +RETCODE SQL_API SQLSetPos( + HSTMT hstmt, SQLUSMALLINT irow, SQLUSMALLINT fOption, SQLUSMALLINT fLock) @@ -569,8 +582,8 @@ SQLRETURN SQL_API SQLSetPos( return PGAPI_SetPos(hstmt, irow, fOption, fLock); } -SQLRETURN SQL_API SQLTablePrivileges( - SQLHSTMT hstmt, +RETCODE SQL_API SQLTablePrivileges( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, @@ -583,15 +596,15 @@ SQLRETURN SQL_API SQLTablePrivileges( szSchemaName, cbSchemaName, szTableName, cbTableName); } -SQLRETURN SQL_API SQLBindParameter( - SQLHSTMT hstmt, +RETCODE SQL_API SQLBindParameter( + HSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT fParamType, SQLSMALLINT fCType, SQLSMALLINT fSqlType, SQLUINTEGER cbColDef, SQLSMALLINT ibScale, - SQLPOINTER rgbValue, + PTR rgbValue, SQLINTEGER cbValueMax, SQLINTEGER *pcbValue) { diff --git a/src/interfaces/odbc/odbcapi30.c b/src/interfaces/odbc/odbcapi30.c index b51c6b1ac08b9df6b635fa002d10bd33db94be2b..9902be746df09d139dd1ccc1791ffc0a07f61583 100644 --- a/src/interfaces/odbc/odbcapi30.c +++ b/src/interfaces/odbc/odbcapi30.c @@ -41,7 +41,7 @@ #include "pgapifunc.h" /* SQLAllocConnect/SQLAllocEnv/SQLAllocStmt -> SQLAllocHandle */ -SQLRETURN SQL_API SQLAllocHandle(SQLSMALLINT HandleType, +RETCODE SQL_API SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandle) { mylog("[[SQLAllocHandle]]"); @@ -58,10 +58,10 @@ SQLRETURN SQL_API SQLAllocHandle(SQLSMALLINT HandleType, return SQL_ERROR; } /* SQLBindParameter/SQLSetParam -> SQLBindParam */ -SQLRETURN SQL_API SQLBindParam(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLBindParam(HSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType, SQLSMALLINT ParameterType, SQLUINTEGER LengthPrecision, - SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, + SQLSMALLINT ParameterScale, PTR ParameterValue, SQLINTEGER *StrLen_or_Ind) { int BufferLength = 512; /* Is it OK ? */ @@ -69,17 +69,17 @@ SQLRETURN SQL_API SQLBindParam(SQLHSTMT StatementHandle, return PGAPI_BindParameter(StatementHandle, ParameterNumber, SQL_PARAM_INPUT, ValueType, ParameterType, LengthPrecision, ParameterScale, ParameterValue, BufferLength, StrLen_or_Ind); } /* New function */ -SQLRETURN SQL_API SQLCloseCursor(SQLHSTMT StatementHandle) +RETCODE SQL_API SQLCloseCursor(HSTMT StatementHandle) { mylog("[[SQLCloseCursor]]"); return PGAPI_FreeStmt(StatementHandle, SQL_CLOSE); } /* SQLColAttributes -> SQLColAttribute */ -SQLRETURN SQL_API SQLColAttribute (SQLHSTMT StatementHandle, +RETCODE SQL_API SQLColAttribute (HSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, - SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, - SQLSMALLINT *StringLength, SQLPOINTER NumericAttribute) + PTR CharacterAttribute, SQLSMALLINT BufferLength, + SQLSMALLINT *StringLength, PTR NumericAttribute) { mylog("[[SQLColAttribute]]"); return PGAPI_ColAttributes(StatementHandle, ColumnNumber, @@ -87,14 +87,14 @@ SQLRETURN SQL_API SQLColAttribute (SQLHSTMT StatementHandle, StringLength, NumericAttribute); } /* new function */ -SQLRETURN SQL_API SQLCopyDesc(SQLHDESC SourceDescHandle, +RETCODE SQL_API SQLCopyDesc(SQLHDESC SourceDescHandle, SQLHDESC TargetDescHandle) { mylog("[[SQLCopyDesc]]\n"); return SQL_ERROR; } /* SQLTransact -> SQLEndTran */ -SQLRETURN SQL_API SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, +RETCODE SQL_API SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType) { mylog("[[SQLEndTran]]"); @@ -110,12 +110,12 @@ SQLRETURN SQL_API SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, } /* SQLExtendedFetch -> SQLFetchScroll */ -SQLRETURN SQL_API SQLFetchScroll(SQLHSTMT StatementHandle, +RETCODE SQL_API SQLFetchScroll(HSTMT StatementHandle, SQLSMALLINT FetchOrientation, SQLINTEGER FetchOffset) { static char *func = "SQLFetchScroll"; StatementClass *stmt = (StatementClass *) StatementHandle; - SQLRETURN ret; + RETCODE ret; SQLUSMALLINT *rowStatusArray = stmt->options.rowStatusArray; SQLINTEGER *pcRow = stmt->options.rowsFetched; mylog("[[%s]] %d,%d\n", func, FetchOrientation, FetchOffset); @@ -138,7 +138,7 @@ SQLRETURN SQL_API SQLFetchScroll(SQLHSTMT StatementHandle, return ret; } /* SQLFree(Connect/Env/Stmt) -> SQLFreeHandle */ -SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle) +RETCODE SQL_API SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle) { mylog("[[SQLFreeHandle]]"); switch (HandleType) @@ -154,16 +154,16 @@ SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle) return SQL_ERROR; } /* new function */ -SQLRETURN SQL_API SQLGetDescField(SQLHDESC DescriptorHandle, +RETCODE SQL_API SQLGetDescField(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, - SQLPOINTER Value, SQLINTEGER BufferLength, + PTR Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) { mylog("[[SQLGetDescField]]\n"); return SQL_ERROR; } /* new function */ -SQLRETURN SQL_API SQLGetDescRec(SQLHDESC DescriptorHandle, +RETCODE SQL_API SQLGetDescRec(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLCHAR *Name, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength, SQLSMALLINT *Type, SQLSMALLINT *SubType, @@ -174,21 +174,21 @@ SQLRETURN SQL_API SQLGetDescRec(SQLHDESC DescriptorHandle, return SQL_ERROR; } /* new function */ -SQLRETURN SQL_API SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle, +RETCODE SQL_API SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, - SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, + PTR DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) { mylog("[[SQLGetDiagField]]\n"); return SQL_ERROR; } /* SQLError -> SQLDiagRec */ -SQLRETURN SQL_API SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, +RETCODE SQL_API SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength) { - SQLRETURN ret; + RETCODE ret; mylog("[[SQLGetDiagRec]]\n"); switch (HandleType) { @@ -221,8 +221,8 @@ SQLRETURN SQL_API SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, return ret; } /* new function */ -SQLRETURN SQL_API SQLGetEnvAttr(SQLHENV EnvironmentHandle, - SQLINTEGER Attribute, SQLPOINTER Value, +RETCODE SQL_API SQLGetEnvAttr(HENV EnvironmentHandle, + SQLINTEGER Attribute, PTR Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) { EnvironmentClass *env = (EnvironmentClass *) EnvironmentHandle; @@ -248,8 +248,8 @@ SQLRETURN SQL_API SQLGetEnvAttr(SQLHENV EnvironmentHandle, return SQL_SUCCESS; } /* SQLGetConnectOption -> SQLGetconnectAttr */ -SQLRETURN SQL_API SQLGetConnectAttr(SQLHDBC ConnectionHandle, - SQLINTEGER Attribute, SQLPOINTER Value, +RETCODE SQL_API SQLGetConnectAttr(HDBC ConnectionHandle, + SQLINTEGER Attribute, PTR Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) { ConnectionClass *conn = (ConnectionClass *) ConnectionHandle; @@ -268,13 +268,13 @@ SQLRETURN SQL_API SQLGetConnectAttr(SQLHDBC ConnectionHandle, return PGAPI_GetConnectOption (ConnectionHandle, (UWORD) Attribute, Value); } /* SQLGetStmtOption -> SQLGetStmtAttr */ -SQLRETURN SQL_API SQLGetStmtAttr(SQLHSTMT StatementHandle, - SQLINTEGER Attribute, SQLPOINTER Value, +RETCODE SQL_API SQLGetStmtAttr(HSTMT StatementHandle, + SQLINTEGER Attribute, PTR Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) { static char *func = "SQLGetStmtAttr"; StatementClass *stmt = (StatementClass *) StatementHandle; - SQLRETURN ret = SQL_SUCCESS; + RETCODE ret = SQL_SUCCESS; int len = 0; mylog("[[%s]] %d\n", func, Attribute); switch (Attribute) @@ -296,19 +296,19 @@ SQLRETURN SQL_API SQLGetStmtAttr(SQLHSTMT StatementHandle, len = 4; break; case SQL_ATTR_APP_ROW_DESC: /* 10010 */ - *((SQLHSTMT *) Value) = StatementHandle; /* this is useless */ + *((HSTMT *) Value) = StatementHandle; /* this is useless */ len = 4; break; case SQL_ATTR_APP_PARAM_DESC: /* 10011 */ - *((SQLHSTMT *) Value) = StatementHandle; /* this is useless */ + *((HSTMT *) Value) = StatementHandle; /* this is useless */ len = 4; break; case SQL_ATTR_IMP_ROW_DESC: /* 10012 */ - *((SQLHSTMT *) Value) = StatementHandle; /* this is useless */ + *((HSTMT *) Value) = StatementHandle; /* this is useless */ len = 4; break; case SQL_ATTR_IMP_PARAM_DESC: /* 10013 */ - *((SQLHSTMT *) Value) = StatementHandle; /* this is useless */ + *((HSTMT *) Value) = StatementHandle; /* this is useless */ len = 4; break; case SQL_ATTR_AUTO_IPD: /* 10001 */ @@ -343,8 +343,8 @@ SQLRETURN SQL_API SQLGetStmtAttr(SQLHSTMT StatementHandle, } /* SQLSetConnectOption -> SQLSetConnectAttr */ -SQLRETURN SQL_API SQLSetConnectAttr(SQLHDBC ConnectionHandle, - SQLINTEGER Attribute, SQLPOINTER Value, +RETCODE SQL_API SQLSetConnectAttr(HDBC ConnectionHandle, + SQLINTEGER Attribute, PTR Value, SQLINTEGER StringLength) { ConnectionClass *conn = (ConnectionClass *) ConnectionHandle; @@ -364,27 +364,27 @@ SQLRETURN SQL_API SQLSetConnectAttr(SQLHDBC ConnectionHandle, return PGAPI_SetConnectOption(ConnectionHandle, (UWORD) Attribute, (UDWORD) Value); } /* new function */ -SQLRETURN SQL_API SQLSetDescField(SQLHDESC DescriptorHandle, +RETCODE SQL_API SQLSetDescField(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, - SQLPOINTER Value, SQLINTEGER BufferLength) + PTR Value, SQLINTEGER BufferLength) { mylog("[[SQLSetDescField]]\n"); return SQL_ERROR; } /* new fucntion */ -SQLRETURN SQL_API SQLSetDescRec(SQLHDESC DescriptorHandle, +RETCODE SQL_API SQLSetDescRec(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT Type, SQLSMALLINT SubType, SQLINTEGER Length, SQLSMALLINT Precision, SQLSMALLINT Scale, - SQLPOINTER Data, SQLINTEGER *StringLength, + PTR Data, SQLINTEGER *StringLength, SQLINTEGER *Indicator) { mylog("[[SQLsetDescRec]]\n"); return SQL_ERROR; } /* new function */ -SQLRETURN SQL_API SQLSetEnvAttr(SQLHENV EnvironmentHandle, - SQLINTEGER Attribute, SQLPOINTER Value, +RETCODE SQL_API SQLSetEnvAttr(HENV EnvironmentHandle, + SQLINTEGER Attribute, PTR Value, SQLINTEGER StringLength) { EnvironmentClass *env = (EnvironmentClass *) EnvironmentHandle; @@ -415,8 +415,8 @@ SQLRETURN SQL_API SQLSetEnvAttr(SQLHENV EnvironmentHandle, return SQL_SUCCESS_WITH_INFO; } /* SQLSet(Param/Scroll/Stmt)Option -> SQLSetStmtAttr */ -SQLRETURN SQL_API SQLSetStmtAttr(SQLHSTMT StatementHandle, - SQLINTEGER Attribute, SQLPOINTER Value, +RETCODE SQL_API SQLSetStmtAttr(HSTMT StatementHandle, + SQLINTEGER Attribute, PTR Value, SQLINTEGER StringLength) { static char *func = "SQLSetStmtAttr"; @@ -569,7 +569,7 @@ PGAPI_GetFunctions30(HDBC hdbc, UWORD fFunction, UWORD FAR *pfExists) return SQL_SUCCESS; } -SQLRETURN SQL_API +RETCODE SQL_API PGAPI_GetInfo30(HDBC hdbc, UWORD fInfoType, PTR rgbInfoValue, SWORD cbInfoValueMax, SWORD FAR *pcbInfoValue) { @@ -577,7 +577,7 @@ PGAPI_GetInfo30(HDBC hdbc, UWORD fInfoType, PTR rgbInfoValue, ConnectionClass *conn = (ConnectionClass *) hdbc; char *p = NULL; int len = 0, value = 0; - SQLRETURN result; + RETCODE result; switch (fInfoType) { diff --git a/src/interfaces/odbc/pgapifunc.h b/src/interfaces/odbc/pgapifunc.h index 93f43fb6d02ed2662f299d0516b1b50e21efdd63..fda018f61f993413f64daa1f053ecd6de1f20d7a 100644 --- a/src/interfaces/odbc/pgapifunc.h +++ b/src/interfaces/odbc/pgapifunc.h @@ -3,7 +3,8 @@ * *------- */ - +#ifndef _PG_API_FUNC_H__ +#define _PG_API_FUNC_H__ #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -20,129 +21,129 @@ #include #endif -SQLRETURN SQL_API PGAPI_AllocConnect(SQLHENV EnvironmentHandle, - SQLHDBC *ConnectionHandle); -SQLRETURN SQL_API PGAPI_AllocEnv(SQLHENV *EnvironmentHandle); -SQLRETURN SQL_API PGAPI_AllocStmt(SQLHDBC ConnectionHandle, - SQLHSTMT *StatementHandle); -SQLRETURN SQL_API PGAPI_BindCol(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_AllocConnect(HENV EnvironmentHandle, + HDBC FAR *ConnectionHandle); +RETCODE SQL_API PGAPI_AllocEnv(HENV FAR *EnvironmentHandle); +RETCODE SQL_API PGAPI_AllocStmt(HDBC ConnectionHandle, + HSTMT *StatementHandle); +RETCODE SQL_API PGAPI_BindCol(HSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, - SQLPOINTER TargetValue, SQLINTEGER BufferLength, + PTR TargetValue, SQLINTEGER BufferLength, SQLINTEGER *StrLen_or_Ind); -SQLRETURN SQL_API PGAPI_Cancel(SQLHSTMT StatementHandle); -SQLRETURN SQL_API PGAPI_Columns(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_Cancel(HSTMT StatementHandle); +RETCODE SQL_API PGAPI_Columns(HSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *ColumnName, SQLSMALLINT NameLength4); -SQLRETURN SQL_API PGAPI_Connect(SQLHDBC ConnectionHandle, +RETCODE SQL_API PGAPI_Connect(HDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3); -SQLRETURN SQL_API PGAPI_DriverConnect(HDBC hdbc, HWND hwnd, +RETCODE SQL_API PGAPI_DriverConnect(HDBC hdbc, HWND hwnd, UCHAR FAR *szConnStrIn, SWORD cbConnStrIn, UCHAR FAR *szConnStrOut, SWORD cbConnStrOutMax, SWORD FAR *pcbConnStrOut, UWORD fDriverCompletion); -SQLRETURN SQL_API PGAPI_BrowseConnect(SQLHDBC hdbc, +RETCODE SQL_API PGAPI_BrowseConnect(HDBC hdbc, SQLCHAR *szConnStrIn, SQLSMALLINT cbConnStrIn, SQLCHAR *szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT *pcbConnStrOut); -SQLRETURN SQL_API PGAPI_DataSources(SQLHENV EnvironmentHandle, +RETCODE SQL_API PGAPI_DataSources(HENV EnvironmentHandle, SQLUSMALLINT Direction, SQLCHAR *ServerName, SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1, SQLCHAR *Description, SQLSMALLINT BufferLength2, SQLSMALLINT *NameLength2); -SQLRETURN SQL_API PGAPI_DescribeCol(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_DescribeCol(HSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT *NameLength, SQLSMALLINT *DataType, SQLUINTEGER *ColumnSize, SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable); -SQLRETURN SQL_API PGAPI_Disconnect(SQLHDBC ConnectionHandle); -SQLRETURN SQL_API PGAPI_Error(SQLHENV EnvironmentHandle, - SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_Disconnect(HDBC ConnectionHandle); +RETCODE SQL_API PGAPI_Error(HENV EnvironmentHandle, + HDBC ConnectionHandle, HSTMT StatementHandle, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength); -SQLRETURN SQL_API PGAPI_ExecDirect(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_ExecDirect(HSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength); -SQLRETURN SQL_API PGAPI_Execute(SQLHSTMT StatementHandle); -SQLRETURN SQL_API PGAPI_Fetch(SQLHSTMT StatementHandle); -SQLRETURN SQL_API PGAPI_FreeConnect(SQLHDBC ConnectionHandle); -SQLRETURN SQL_API PGAPI_FreeEnv(SQLHENV EnvironmentHandle); -SQLRETURN SQL_API PGAPI_FreeStmt(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_Execute(HSTMT StatementHandle); +RETCODE SQL_API PGAPI_Fetch(HSTMT StatementHandle); +RETCODE SQL_API PGAPI_FreeConnect(HDBC ConnectionHandle); +RETCODE SQL_API PGAPI_FreeEnv(HENV EnvironmentHandle); +RETCODE SQL_API PGAPI_FreeStmt(HSTMT StatementHandle, SQLUSMALLINT Option); -SQLRETURN SQL_API PGAPI_GetConnectOption(SQLHDBC ConnectionHandle, - SQLUSMALLINT Option, SQLPOINTER Value); -SQLRETURN SQL_API PGAPI_GetCursorName(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_GetConnectOption(HDBC ConnectionHandle, + SQLUSMALLINT Option, PTR Value); +RETCODE SQL_API PGAPI_GetCursorName(HSTMT StatementHandle, SQLCHAR *CursorName, SQLSMALLINT BufferLength, SQLSMALLINT *NameLength); -SQLRETURN SQL_API PGAPI_GetData(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_GetData(HSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, - SQLPOINTER TargetValue, SQLINTEGER BufferLength, + PTR TargetValue, SQLINTEGER BufferLength, SQLINTEGER *StrLen_or_Ind); -SQLRETURN SQL_API PGAPI_GetFunctions(SQLHDBC ConnectionHandle, +RETCODE SQL_API PGAPI_GetFunctions(HDBC ConnectionHandle, SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported); -SQLRETURN SQL_API PGAPI_GetFunctions30(SQLHDBC ConnectionHandle, +RETCODE SQL_API PGAPI_GetFunctions30(HDBC ConnectionHandle, SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported); -SQLRETURN SQL_API PGAPI_GetInfo(SQLHDBC ConnectionHandle, - SQLUSMALLINT InfoType, SQLPOINTER InfoValue, +RETCODE SQL_API PGAPI_GetInfo(HDBC ConnectionHandle, + SQLUSMALLINT InfoType, PTR InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength); -SQLRETURN SQL_API PGAPI_GetInfo30(SQLHDBC ConnectionHandle, - SQLUSMALLINT InfoType, SQLPOINTER InfoValue, +RETCODE SQL_API PGAPI_GetInfo30(HDBC ConnectionHandle, + SQLUSMALLINT InfoType, PTR InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength); -SQLRETURN SQL_API PGAPI_GetStmtOption(SQLHSTMT StatementHandle, - SQLUSMALLINT Option, SQLPOINTER Value); -SQLRETURN SQL_API PGAPI_GetTypeInfo(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_GetStmtOption(HSTMT StatementHandle, + SQLUSMALLINT Option, PTR Value); +RETCODE SQL_API PGAPI_GetTypeInfo(HSTMT StatementHandle, SQLSMALLINT DataType); -SQLRETURN SQL_API PGAPI_NumResultCols(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_NumResultCols(HSTMT StatementHandle, SQLSMALLINT *ColumnCount); -SQLRETURN SQL_API PGAPI_ParamData(SQLHSTMT StatementHandle, - SQLPOINTER *Value); -SQLRETURN SQL_API PGAPI_Prepare(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_ParamData(HSTMT StatementHandle, + PTR *Value); +RETCODE SQL_API PGAPI_Prepare(HSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength); -SQLRETURN SQL_API PGAPI_PutData(SQLHSTMT StatementHandle, - SQLPOINTER Data, SQLINTEGER StrLen_or_Ind); -SQLRETURN SQL_API PGAPI_RowCount(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_PutData(HSTMT StatementHandle, + PTR Data, SQLINTEGER StrLen_or_Ind); +RETCODE SQL_API PGAPI_RowCount(HSTMT StatementHandle, SQLINTEGER *RowCount); -SQLRETURN SQL_API PGAPI_SetConnectOption(SQLHDBC ConnectionHandle, +RETCODE SQL_API PGAPI_SetConnectOption(HDBC ConnectionHandle, SQLUSMALLINT Option, SQLUINTEGER Value); -SQLRETURN SQL_API PGAPI_SetCursorName(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_SetCursorName(HSTMT StatementHandle, SQLCHAR *CursorName, SQLSMALLINT NameLength); -SQLRETURN SQL_API PGAPI_SetParam(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_SetParam(HSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType, SQLSMALLINT ParameterType, SQLUINTEGER LengthPrecision, - SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, + SQLSMALLINT ParameterScale, PTR ParameterValue, SQLINTEGER *StrLen_or_Ind); -SQLRETURN SQL_API PGAPI_SetStmtOption(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_SetStmtOption(HSTMT StatementHandle, SQLUSMALLINT Option, SQLUINTEGER Value); -SQLRETURN SQL_API PGAPI_SpecialColumns(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_SpecialColumns(HSTMT StatementHandle, SQLUSMALLINT IdentifierType, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLUSMALLINT Scope, SQLUSMALLINT Nullable); -SQLRETURN SQL_API PGAPI_Statistics(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_Statistics(HSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLUSMALLINT Unique, SQLUSMALLINT Reserved); -SQLRETURN SQL_API PGAPI_Tables(SQLHSTMT StatementHandle, +RETCODE SQL_API PGAPI_Tables(HSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLCHAR *TableType, SQLSMALLINT NameLength4); -SQLRETURN SQL_API PGAPI_Transact(SQLHENV EnvironmentHandle, - SQLHDBC ConnectionHandle, SQLUSMALLINT CompletionType); -SQLRETURN SQL_API PGAPI_ColAttributes( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_Transact(HENV EnvironmentHandle, + HDBC ConnectionHandle, SQLUSMALLINT CompletionType); +RETCODE SQL_API PGAPI_ColAttributes( + HSTMT hstmt, SQLUSMALLINT icol, SQLUSMALLINT fDescType, - SQLPOINTER rgbDesc, + PTR rgbDesc, SQLSMALLINT cbDescMax, SQLSMALLINT *pcbDesc, SQLINTEGER *pfDesc); -SQLRETURN SQL_API PGAPI_ColumnPrivileges( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_ColumnPrivileges( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, @@ -151,21 +152,21 @@ SQLRETURN SQL_API PGAPI_ColumnPrivileges( SQLSMALLINT cbTableName, SQLCHAR *szColumnName, SQLSMALLINT cbColumnName); -SQLRETURN SQL_API PGAPI_DescribeParam( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_DescribeParam( + HSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT *pfSqlType, SQLUINTEGER *pcbParamDef, SQLSMALLINT *pibScale, SQLSMALLINT *pfNullable); -SQLRETURN SQL_API PGAPI_ExtendedFetch( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_ExtendedFetch( + HSTMT hstmt, SQLUSMALLINT fFetchType, SQLINTEGER irow, SQLUINTEGER *pcrow, SQLUSMALLINT *rgfRowStatus); -SQLRETURN SQL_API PGAPI_ForeignKeys( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_ForeignKeys( + HSTMT hstmt, SQLCHAR *szPkCatalogName, SQLSMALLINT cbPkCatalogName, SQLCHAR *szPkSchemaName, @@ -178,32 +179,32 @@ SQLRETURN SQL_API PGAPI_ForeignKeys( SQLSMALLINT cbFkSchemaName, SQLCHAR *szFkTableName, SQLSMALLINT cbFkTableName); -SQLRETURN SQL_API PGAPI_MoreResults( - SQLHSTMT hstmt); -SQLRETURN SQL_API PGAPI_NativeSql( - SQLHDBC hdbc, +RETCODE SQL_API PGAPI_MoreResults( + HSTMT hstmt); +RETCODE SQL_API PGAPI_NativeSql( + HDBC hdbc, SQLCHAR *szSqlStrIn, SQLINTEGER cbSqlStrIn, SQLCHAR *szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER *pcbSqlStr); -SQLRETURN SQL_API PGAPI_NumParams( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_NumParams( + HSTMT hstmt, SQLSMALLINT *pcpar); -SQLRETURN SQL_API PGAPI_ParamOptions( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_ParamOptions( + HSTMT hstmt, SQLUINTEGER crow, SQLUINTEGER *pirow); -SQLRETURN SQL_API PGAPI_PrimaryKeys( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_PrimaryKeys( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR *szTableName, SQLSMALLINT cbTableName); -SQLRETURN SQL_API PGAPI_ProcedureColumns( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_ProcedureColumns( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, @@ -212,37 +213,41 @@ SQLRETURN SQL_API PGAPI_ProcedureColumns( SQLSMALLINT cbProcName, SQLCHAR *szColumnName, SQLSMALLINT cbColumnName); -SQLRETURN SQL_API PGAPI_Procedures( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_Procedures( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR *szProcName, SQLSMALLINT cbProcName); -SQLRETURN SQL_API PGAPI_SetPos( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_SetPos( + HSTMT hstmt, SQLUSMALLINT irow, SQLUSMALLINT fOption, SQLUSMALLINT fLock); -SQLRETURN SQL_API PGAPI_TablePrivileges( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_TablePrivileges( + HSTMT hstmt, SQLCHAR *szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR *szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR *szTableName, SQLSMALLINT cbTableName); -SQLRETURN SQL_API PGAPI_BindParameter( - SQLHSTMT hstmt, +RETCODE SQL_API PGAPI_BindParameter( + HSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT fParamType, SQLSMALLINT fCType, SQLSMALLINT fSqlType, SQLUINTEGER cbColDef, SQLSMALLINT ibScale, - SQLPOINTER rgbValue, + PTR rgbValue, SQLINTEGER cbValueMax, SQLINTEGER *pcbValue); - -/* #include "pg_converr_check.h" */ +RETCODE SQL_API PGAPI_SetScrollOptions( + HSTMT hstmt, + UWORD fConcurrency, + SDWORD crowKeyset, + UWORD crowRowset); +#endif /* define_PG_API_FUNC_H__ */ diff --git a/src/interfaces/odbc/pgtypes.c b/src/interfaces/odbc/pgtypes.c index 83f9574d2a79855d531a98e4babf96b72387895b..ff640776f8b461a270e96dd4649d0c03007ba2ae 100644 --- a/src/interfaces/odbc/pgtypes.c +++ b/src/interfaces/odbc/pgtypes.c @@ -697,6 +697,9 @@ pgtype_length(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_ return 16; /* Character types (and NUMERIC) use the default precision */ + case PG_TYPE_VARCHAR: + case PG_TYPE_BPCHAR: + return 2 * pgtype_precision(stmt, type, col, handle_unknown_size_as); default: return pgtype_precision(stmt, type, col, handle_unknown_size_as); } diff --git a/src/interfaces/odbc/statement.c b/src/interfaces/odbc/statement.c index 4459bdb15d3ed947d53067d64b8926f915438e71..3ab683d4a04e783c36a3736650dbe9a4f2185bc0 100644 --- a/src/interfaces/odbc/statement.c +++ b/src/interfaces/odbc/statement.c @@ -714,13 +714,15 @@ SC_fetch(StatementClass *self) static char *func = "SC_fetch"; QResultClass *res = self->result; int retval, - result, updret; + result; +#ifdef DRIVER_CURSOR_IMPLEMENT + int updret; +#endif /* DRIVER_CURSOR_IMPLEMENT */ Int2 num_cols, lf; Oid type; char *value; ColumnInfoClass *ci; -extern WORD addrow; /* TupleField *tupleField; */ self->last_fetch_count = 0;