odbcapi.c 18.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
/*-------
 * Module:			odbcapi.c
 *
 * Description:		This module contains routines related to
 *					preparing and executing an SQL statement.
 *
 * Classes:			n/a
 *
 * API functions:	SQLAllocConnect, SQLAllocEnv, SQLAllocStmt,
			SQLBindCol, SQLCancel, SQLColumns, SQLConnect,
			SQLDataSources, SQLDescribeCol, SQLDisconnect,
			SQLError, SQLExecDirect, SQLExecute, SQLFetch,
			SQLFreeConnect, SQLFreeEnv, SQLFreeStmt,
			SQLGetConnectOption, SQLGetCursorName, SQLGetData,
			SQLGetFunctions, SQLGetInfo, SQLGetStmtOption,
			SQLGetTypeInfo, SQLNumResultCols, SQLParamData,
			SQLPrepare, SQLPutData, SQLRowCount,
			SQLSetConnectOption, SQLSetCursorName, SQLSetParam,
			SQLSetStmtOption, SQLSpecialColumns, SQLStatistics,
			SQLTables, SQLTransact, SQLColAttributes,
 			SQLColumnPrivileges, SQLDescribeParam, SQLExtendedFetch,
 			SQLForeignKeys, SQLMoreResults, SQLNativeSql,
 			SQLNumParams, SQLParamOptions, SQLPrimaryKeys,
 			SQLProcedureColumns, SQLProcedures, SQLSetPos,
 			SQLTablePrivileges, SQLBindParameter
 *-------
 */

#include "psqlodbc.h"
30
#ifdef	WIN32
31 32
#undef	ODBCVER
#define	ODBCVER	0x3000
33
#endif
34 35 36 37 38 39 40
#include <stdio.h>
#include <string.h>

#include "pgapifunc.h"
#include "connection.h"
#include "statement.h"

41 42
RETCODE  SQL_API SQLAllocConnect(HENV EnvironmentHandle,
           HDBC FAR *ConnectionHandle)
43 44 45 46 47
{
	mylog("[SQLAllocConnect]");
	return PGAPI_AllocConnect(EnvironmentHandle, ConnectionHandle);
}

48
RETCODE  SQL_API SQLAllocEnv(HENV FAR *EnvironmentHandle)
49 50 51 52 53
{
	mylog("[SQLAllocEnv]");
	return PGAPI_AllocEnv(EnvironmentHandle);
}

54 55
RETCODE  SQL_API SQLAllocStmt(HDBC ConnectionHandle,
           HSTMT *StatementHandle)
56 57 58 59 60
{
	mylog("[SQLAllocStmt]");
	return PGAPI_AllocStmt(ConnectionHandle, StatementHandle);
}

61
RETCODE  SQL_API SQLBindCol(HSTMT StatementHandle, 
62
		   SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, 
63
		   PTR TargetValue, SQLINTEGER BufferLength, 
64 65 66 67 68 69 70
	   	   SQLINTEGER *StrLen_or_Ind)
{
	mylog("[SQLBindCol]");
	return PGAPI_BindCol(StatementHandle, ColumnNumber,
		  TargetType, TargetValue, BufferLength, StrLen_or_Ind);
}

71
RETCODE  SQL_API SQLCancel(HSTMT StatementHandle)
72 73 74 75 76
{
	mylog("[SQLCancel]");
	return PGAPI_Cancel(StatementHandle);
}

77
RETCODE  SQL_API SQLColumns(HSTMT StatementHandle,
78 79 80 81 82 83 84 85 86 87 88 89
           SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
           SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
           SQLCHAR *TableName, SQLSMALLINT NameLength3,
           SQLCHAR *ColumnName, SQLSMALLINT NameLength4)
{
	mylog("[SQLColumns]");
	return PGAPI_Columns(StatementHandle, CatalogName, NameLength1,
           	SchemaName, NameLength2, TableName, NameLength3,
           	ColumnName, NameLength4);
}


90
RETCODE  SQL_API SQLConnect(HDBC ConnectionHandle,
91 92 93 94 95 96 97 98 99
           SQLCHAR *ServerName, SQLSMALLINT NameLength1,
           SQLCHAR *UserName, SQLSMALLINT NameLength2,
           SQLCHAR *Authentication, SQLSMALLINT NameLength3)
{
	mylog("[SQLConnect]");
	return PGAPI_Connect(ConnectionHandle, ServerName, NameLength1,
           	UserName, NameLength2, Authentication, NameLength3);
}

100
RETCODE SQL_API SQLDriverConnect(HDBC hdbc,
101 102 103 104 105 106 107 108 109 110 111 112
                                 HWND hwnd,
                                 UCHAR FAR *szConnStrIn,
                                 SWORD cbConnStrIn,
                                 UCHAR FAR *szConnStrOut,
                                 SWORD cbConnStrOutMax,
                                 SWORD FAR *pcbConnStrOut,
                                 UWORD fDriverCompletion)
{
	mylog("[SQLDriverConnect]");
	return PGAPI_DriverConnect(hdbc, hwnd, szConnStrIn, cbConnStrIn,
		szConnStrOut, cbConnStrOutMax, pcbConnStrOut, fDriverCompletion);
}
113 114
RETCODE SQL_API SQLBrowseConnect(
    HDBC            hdbc,
115 116 117 118 119 120 121 122 123 124 125
    SQLCHAR 		  *szConnStrIn,
    SQLSMALLINT        cbConnStrIn,
    SQLCHAR 		  *szConnStrOut,
    SQLSMALLINT        cbConnStrOutMax,
    SQLSMALLINT       *pcbConnStrOut)
{
	mylog("[SQLBrowseConnect]");
	return PGAPI_BrowseConnect(hdbc, szConnStrIn, cbConnStrIn,
		szConnStrOut, cbConnStrOutMax, pcbConnStrOut);
}

126
RETCODE  SQL_API SQLDataSources(HENV EnvironmentHandle,
127 128 129 130 131 132 133 134 135 136 137 138 139 140
           SQLUSMALLINT Direction, SQLCHAR *ServerName,
           SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1,
           SQLCHAR *Description, SQLSMALLINT BufferLength2,
           SQLSMALLINT *NameLength2)
{
	mylog("[SQLDataSources]");
	/*
	return PGAPI_DataSources(EnvironmentHandle, Direction, ServerName,
		 BufferLength1, NameLength1, Description, BufferLength2,
           	NameLength2);
	*/
	return SQL_ERROR;
}

141
RETCODE  SQL_API SQLDescribeCol(HSTMT StatementHandle,
142 143 144 145 146 147 148 149 150 151 152
           SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName,
           SQLSMALLINT BufferLength, SQLSMALLINT *NameLength,
           SQLSMALLINT *DataType, SQLUINTEGER *ColumnSize,
           SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable)
{
	mylog("[SQLDescribeCol]");
	return PGAPI_DescribeCol(StatementHandle, ColumnNumber,
		ColumnName, BufferLength, NameLength,
           	DataType, ColumnSize, DecimalDigits, Nullable);
}

153
RETCODE  SQL_API SQLDisconnect(HDBC ConnectionHandle)
154 155 156 157 158
{
	mylog("[SQLDisconnect]");
	return PGAPI_Disconnect(ConnectionHandle);
}

159 160
RETCODE  SQL_API SQLError(HENV EnvironmentHandle,
           HDBC ConnectionHandle, HSTMT StatementHandle,
161 162 163 164 165 166 167 168 169
           SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
           SQLCHAR *MessageText, SQLSMALLINT BufferLength,
           SQLSMALLINT *TextLength)
{
	mylog("[SQLError]");
	return PGAPI_Error(EnvironmentHandle, ConnectionHandle, StatementHandle,
           	Sqlstate, NativeError, MessageText, BufferLength, TextLength);
}

170
RETCODE  SQL_API SQLExecDirect(HSTMT StatementHandle,
171 172 173 174 175 176
           SQLCHAR *StatementText, SQLINTEGER TextLength)
{
	mylog("[SQLExecDirect]");
	return PGAPI_ExecDirect(StatementHandle, StatementText, TextLength);
}

177
RETCODE  SQL_API SQLExecute(HSTMT StatementHandle)
178 179 180 181 182
{
	mylog("[SQLExecute]");
	return PGAPI_Execute(StatementHandle);
}

183
RETCODE  SQL_API SQLFetch(HSTMT StatementHandle)
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
{
        static char *func = "SQLFetch";
#if (ODBCVER >= 0x3000)
        StatementClass  *stmt = (StatementClass *) StatementHandle;
	ConnectionClass *conn = SC_get_conn(stmt);
	if (conn->driver_version >= 0x0300) 
	{
        	SQLUSMALLINT    *rowStatusArray = stmt->options.rowStatusArray;
        	SQLINTEGER      *pcRow = stmt->options.rowsFetched;

		mylog("[[%s]]", func);
        	return PGAPI_ExtendedFetch(StatementHandle, SQL_FETCH_NEXT, 0,
                        pcRow, rowStatusArray);
	}
#endif
	mylog("[%s]", func);
	return PGAPI_Fetch(StatementHandle);
}

203
RETCODE  SQL_API SQLFreeConnect(HDBC ConnectionHandle)
204 205 206 207 208
{
	mylog("[SQLFreeStmt]");
	return PGAPI_FreeConnect(ConnectionHandle);
}

209
RETCODE  SQL_API SQLFreeEnv(HENV EnvironmentHandle)
210 211 212 213 214
{
	mylog("[SQLFreeEnv]");
	return PGAPI_FreeEnv(EnvironmentHandle);
}

215
RETCODE  SQL_API SQLFreeStmt(HSTMT StatementHandle,
216 217 218 219 220 221
           SQLUSMALLINT Option)
{
	mylog("[SQLFreeStmt]");
	return PGAPI_FreeStmt(StatementHandle, Option);
}

222 223
RETCODE  SQL_API SQLGetConnectOption(HDBC ConnectionHandle,
           SQLUSMALLINT Option, PTR Value)
224 225 226 227
{
	mylog("[SQLGetConnectOption]");
	return PGAPI_GetConnectOption(ConnectionHandle, Option, Value);
} 
228
RETCODE  SQL_API SQLGetCursorName(HSTMT StatementHandle,
229 230 231 232 233 234 235 236
           SQLCHAR *CursorName, SQLSMALLINT BufferLength,
           SQLSMALLINT *NameLength)
{
	mylog("[SQLGetCursorName]");
	return PGAPI_GetCursorName(StatementHandle, CursorName, BufferLength,
           	NameLength);
}

237
RETCODE  SQL_API SQLGetData(HSTMT StatementHandle,
238
           SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType,
239
           PTR TargetValue, SQLINTEGER BufferLength,
240 241 242 243 244 245 246
           SQLINTEGER *StrLen_or_Ind)
{
	mylog("[SQLGetData]");
	return PGAPI_GetData(StatementHandle, ColumnNumber, TargetType,
           	TargetValue, BufferLength, StrLen_or_Ind);
}

247
RETCODE  SQL_API SQLGetFunctions(HDBC ConnectionHandle,
248 249
           SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported)
{
250
	mylog("[SQLGetFunctions]");
251 252 253 254 255 256
#if (ODBCVER >= 0x3000)
	if (FunctionId == SQL_API_ODBC3_ALL_FUNCTIONS)
		return PGAPI_GetFunctions30(ConnectionHandle, FunctionId, Supported);
#endif
	return PGAPI_GetFunctions(ConnectionHandle, FunctionId, Supported);
}
257 258
RETCODE  SQL_API SQLGetInfo(HDBC ConnectionHandle,
           SQLUSMALLINT InfoType, PTR InfoValue,
259 260
           SQLSMALLINT BufferLength, SQLSMALLINT *StringLength)
{
261 262 263 264 265
#if (ODBCVER >= 0x3000)
	RETCODE	ret;
	mylog("[SQLGetInfo(30)]");
	if ((ret = PGAPI_GetInfo(ConnectionHandle, InfoType, InfoValue,
           	BufferLength, StringLength)) == SQL_ERROR)
266 267 268 269 270 271
	{
		if (((ConnectionClass *) ConnectionHandle)->driver_version >= 0x3000)
			return PGAPI_GetInfo30(ConnectionHandle, InfoType, InfoValue,
           			BufferLength, StringLength);
	}
	return ret;
272
#else
273 274 275
	mylog("[SQLGetInfo]");
	return PGAPI_GetInfo(ConnectionHandle, InfoType, InfoValue,
           	BufferLength, StringLength);
276
#endif
277 278
}

279 280
RETCODE  SQL_API SQLGetStmtOption(HSTMT StatementHandle,
           SQLUSMALLINT Option, PTR Value)
281 282 283 284 285
{
	mylog("[SQLGetStmtOption]");
	return PGAPI_GetStmtOption(StatementHandle, Option, Value);
}

286
RETCODE  SQL_API SQLGetTypeInfo(HSTMT StatementHandle,
287 288 289 290 291 292
           SQLSMALLINT DataType)
{
	mylog("[SQLGetTypeInfo]");
	return PGAPI_GetTypeInfo(StatementHandle,DataType);
}

293
RETCODE  SQL_API SQLNumResultCols(HSTMT StatementHandle,
294 295 296 297 298 299
           SQLSMALLINT *ColumnCount)
{
	mylog("[SQLNumResultCols]");
	return PGAPI_NumResultCols(StatementHandle, ColumnCount);
}

300 301
RETCODE  SQL_API SQLParamData(HSTMT StatementHandle,
           PTR *Value)
302 303 304 305 306
{
	mylog("[SQLParamData]");
	return PGAPI_ParamData(StatementHandle, Value);
}

307
RETCODE  SQL_API SQLPrepare(HSTMT StatementHandle,
308 309 310 311 312 313
           SQLCHAR *StatementText, SQLINTEGER TextLength)
{
	mylog("[SQLPrepare]");
	return PGAPI_Prepare(StatementHandle, StatementText, TextLength);
}

314 315
RETCODE  SQL_API SQLPutData(HSTMT StatementHandle,
           PTR Data, SQLINTEGER StrLen_or_Ind)
316 317 318 319 320
{
	mylog("[SQLPutData]");
	return PGAPI_PutData(StatementHandle, Data, StrLen_or_Ind);
}

321
RETCODE  SQL_API SQLRowCount(HSTMT StatementHandle, 
322 323 324 325 326 327
	   SQLINTEGER *RowCount)
{
	mylog("[SQLRowCount]");
	return PGAPI_RowCount(StatementHandle, RowCount);
}

328
RETCODE  SQL_API SQLSetConnectOption(HDBC ConnectionHandle,
329 330 331 332 333 334
           SQLUSMALLINT Option, SQLUINTEGER Value)
{
	mylog("[SQLSetConnectionOption]");
	return PGAPI_SetConnectOption(ConnectionHandle, Option, Value);
}

335
RETCODE  SQL_API SQLSetCursorName(HSTMT StatementHandle,
336 337 338 339 340 341
           SQLCHAR *CursorName, SQLSMALLINT NameLength)
{
	mylog("[SQLSetCursorName]");
	return PGAPI_SetCursorName(StatementHandle, CursorName, NameLength);
}

342
RETCODE  SQL_API SQLSetParam(HSTMT StatementHandle,
343 344
           SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType,
           SQLSMALLINT ParameterType, SQLUINTEGER LengthPrecision,
345
           SQLSMALLINT ParameterScale, PTR ParameterValue,
346 347 348 349 350 351 352 353 354 355 356
           SQLINTEGER *StrLen_or_Ind)
{
	mylog("[SQLSetParam]");
	/*
	return PGAPI_SetParam(StatementHandle, ParameterNumber, ValueType,
           ParameterType, LengthPrecision, ParameterScale, ParameterValue,
           StrLen_or_Ind);
	*/
        return SQL_ERROR;
}

357
RETCODE  SQL_API SQLSetStmtOption(HSTMT StatementHandle,
358 359 360 361 362 363
           SQLUSMALLINT Option, SQLUINTEGER Value)
{
	mylog("[SQLSetStmtOption]");
	return PGAPI_SetStmtOption(StatementHandle, Option, Value);
}

364
RETCODE  SQL_API SQLSpecialColumns(HSTMT StatementHandle,
365 366 367 368 369 370 371 372 373 374 375 376
           SQLUSMALLINT IdentifierType, SQLCHAR *CatalogName,
           SQLSMALLINT NameLength1, SQLCHAR *SchemaName,
           SQLSMALLINT NameLength2, SQLCHAR *TableName,
           SQLSMALLINT NameLength3, SQLUSMALLINT Scope,
           SQLUSMALLINT Nullable)
{
	mylog("[SQLSpecialColumns]");
	return PGAPI_SpecialColumns(StatementHandle, IdentifierType, CatalogName,
           NameLength1, SchemaName, NameLength2, TableName, NameLength3,
		Scope, Nullable);
}

377
RETCODE  SQL_API SQLStatistics(HSTMT StatementHandle,
378 379 380 381 382 383 384 385 386 387 388
           SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
           SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
           SQLCHAR *TableName, SQLSMALLINT NameLength3,
           SQLUSMALLINT Unique, SQLUSMALLINT Reserved)
{
	mylog("[SQLStatistics]");
	return PGAPI_Statistics(StatementHandle, CatalogName, NameLength1,
           SchemaName, NameLength2, TableName, NameLength3, Unique,
		Reserved);
}

389
RETCODE  SQL_API SQLTables(HSTMT StatementHandle,
390 391 392 393 394 395 396 397 398 399 400
           SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
           SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
           SQLCHAR *TableName, SQLSMALLINT NameLength3,
           SQLCHAR *TableType, SQLSMALLINT NameLength4)
{
	mylog("[SQLTables]");
	return PGAPI_Tables(StatementHandle, CatalogName, NameLength1,
           SchemaName, NameLength2, TableName, NameLength3,
           TableType, NameLength4);
}

401 402
RETCODE  SQL_API SQLTransact(HENV EnvironmentHandle,
           HDBC ConnectionHandle, SQLUSMALLINT CompletionType)
403 404 405 406 407
{
	mylog("[SQLTransact]");
	return PGAPI_Transact(EnvironmentHandle, ConnectionHandle, CompletionType);
}

408 409
RETCODE SQL_API SQLColAttributes(
    HSTMT           hstmt,
410 411
    SQLUSMALLINT       icol,
    SQLUSMALLINT       fDescType,
412
    PTR         rgbDesc,
413 414 415 416 417 418 419 420 421
    SQLSMALLINT        cbDescMax,
    SQLSMALLINT 	  *pcbDesc,
    SQLINTEGER 		  *pfDesc)
{
	mylog("[SQLColAttributes]");
	return PGAPI_ColAttributes(hstmt, icol, fDescType, rgbDesc,
		cbDescMax, pcbDesc, pfDesc);
}

422 423
RETCODE SQL_API SQLColumnPrivileges(
    HSTMT           hstmt,
424 425 426 427 428 429 430 431 432 433 434 435 436 437 438
    SQLCHAR 		  *szCatalogName,
    SQLSMALLINT        cbCatalogName,
    SQLCHAR 		  *szSchemaName,
    SQLSMALLINT        cbSchemaName,
    SQLCHAR 		  *szTableName,
    SQLSMALLINT        cbTableName,
    SQLCHAR 		  *szColumnName,
    SQLSMALLINT        cbColumnName)
{
	mylog("[SQLColumnPrivileges]");
	return PGAPI_ColumnPrivileges(hstmt, szCatalogName, cbCatalogName,
		szSchemaName, cbSchemaName, szTableName, cbTableName,
		szColumnName, cbColumnName);
}

439 440
RETCODE SQL_API SQLDescribeParam(
    HSTMT           hstmt,
441 442 443 444 445 446 447 448 449 450 451
    SQLUSMALLINT       ipar,
    SQLSMALLINT 	  *pfSqlType,
    SQLUINTEGER 	  *pcbParamDef,
    SQLSMALLINT 	  *pibScale,
    SQLSMALLINT 	  *pfNullable)
{
	mylog("[SQLDescribeParam]");
	return PGAPI_DescribeParam(hstmt, ipar, pfSqlType, pcbParamDef,
		pibScale, pfNullable);
}

452 453
RETCODE SQL_API SQLExtendedFetch(
    HSTMT           hstmt,
454 455 456 457 458 459 460 461 462
    SQLUSMALLINT       fFetchType,
    SQLINTEGER         irow,
    SQLUINTEGER 	  *pcrow,
    SQLUSMALLINT 	  *rgfRowStatus)
{
	mylog("[SQLExtendedFetch]");
	return PGAPI_ExtendedFetch(hstmt, fFetchType, irow, pcrow, rgfRowStatus);
}

463 464
RETCODE SQL_API SQLForeignKeys(
    HSTMT           hstmt,
465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484
    SQLCHAR 		  *szPkCatalogName,
    SQLSMALLINT        cbPkCatalogName,
    SQLCHAR 		  *szPkSchemaName,
    SQLSMALLINT        cbPkSchemaName,
    SQLCHAR 		  *szPkTableName,
    SQLSMALLINT        cbPkTableName,
    SQLCHAR 		  *szFkCatalogName,
    SQLSMALLINT        cbFkCatalogName,
    SQLCHAR 		  *szFkSchemaName,
    SQLSMALLINT        cbFkSchemaName,
    SQLCHAR 		  *szFkTableName,
    SQLSMALLINT        cbFkTableName)
{
	mylog("[SQLForeignKeys]");
	return PGAPI_ForeignKeys(hstmt, szPkCatalogName, cbPkCatalogName,
		szPkSchemaName, cbPkSchemaName, szPkTableName,
		cbPkTableName, szFkCatalogName, cbFkCatalogName,
 		szFkSchemaName, cbFkSchemaName, szFkTableName, cbFkTableName);
}

485
RETCODE SQL_API SQLMoreResults(HSTMT hstmt)
486 487 488 489 490
{
	mylog("[SQLMoreResults]");
	return PGAPI_MoreResults(hstmt);
}
 
491 492
RETCODE SQL_API SQLNativeSql(
    HDBC            hdbc,
493 494 495 496 497 498 499 500 501 502 503
    SQLCHAR 		  *szSqlStrIn,
    SQLINTEGER         cbSqlStrIn,
    SQLCHAR 		  *szSqlStr,
    SQLINTEGER         cbSqlStrMax,
    SQLINTEGER 		  *pcbSqlStr)
{
	mylog("[SQLNativeSql]");
	return PGAPI_NativeSql(hdbc, szSqlStrIn, cbSqlStrIn, szSqlStr,
		cbSqlStrMax, pcbSqlStr);
}

504 505
RETCODE SQL_API SQLNumParams(
    HSTMT           hstmt,
506 507 508 509 510 511
    SQLSMALLINT 	  *pcpar)
{
	mylog("[SQLNumParams]");
	return PGAPI_NumParams(hstmt, pcpar);
}

512 513
RETCODE SQL_API SQLParamOptions(
    HSTMT           hstmt,
514 515 516 517 518 519 520
    SQLUINTEGER        crow,
    SQLUINTEGER 	  *pirow)
{
	mylog("[SQLParamOptions]");
	return PGAPI_ParamOptions(hstmt, crow, pirow);
}

521 522
RETCODE SQL_API SQLPrimaryKeys(
    HSTMT           hstmt,
523 524 525 526 527 528 529 530 531 532 533 534
    SQLCHAR 		  *szCatalogName,
    SQLSMALLINT        cbCatalogName,
    SQLCHAR 		  *szSchemaName,
    SQLSMALLINT        cbSchemaName,
    SQLCHAR 		  *szTableName,
    SQLSMALLINT        cbTableName)
{
	mylog("[SQLPrimaryKeys]");
	return PGAPI_PrimaryKeys(hstmt, szCatalogName, cbCatalogName,
		szSchemaName, cbSchemaName, szTableName, cbTableName);
}

535 536
RETCODE SQL_API SQLProcedureColumns(
    HSTMT           hstmt,
537 538 539 540 541 542 543 544 545 546 547 548 549 550 551
    SQLCHAR 		  *szCatalogName,
    SQLSMALLINT        cbCatalogName,
    SQLCHAR 		  *szSchemaName,
    SQLSMALLINT        cbSchemaName,
    SQLCHAR 		  *szProcName,
    SQLSMALLINT        cbProcName,
    SQLCHAR 		  *szColumnName,
    SQLSMALLINT        cbColumnName)
{
	mylog("[SQLProcedureColumns]");
	return PGAPI_ProcedureColumns(hstmt, szCatalogName, cbCatalogName,
		szSchemaName, cbSchemaName, szProcName, cbProcName,
		szColumnName, cbColumnName);
}

552 553
RETCODE SQL_API SQLProcedures(
    HSTMT           hstmt,
554 555 556 557 558 559 560 561 562 563 564 565
    SQLCHAR 		  *szCatalogName,
    SQLSMALLINT        cbCatalogName,
    SQLCHAR 		  *szSchemaName,
    SQLSMALLINT        cbSchemaName,
    SQLCHAR 		  *szProcName,
    SQLSMALLINT        cbProcName)
{
	mylog("[SQLProcedures]");
	return PGAPI_Procedures(hstmt, szCatalogName, cbCatalogName,
		szSchemaName, cbSchemaName, szProcName, cbProcName);
}

566 567
RETCODE SQL_API SQLSetPos(
    HSTMT           hstmt,
568 569 570 571 572 573 574 575
    SQLUSMALLINT       irow,
    SQLUSMALLINT       fOption,
    SQLUSMALLINT       fLock)
{
	mylog("[SQLSetPos]");
	return PGAPI_SetPos(hstmt, irow, fOption, fLock);
}

576 577
RETCODE SQL_API SQLTablePrivileges(
    HSTMT           hstmt,
578 579 580 581 582 583 584 585 586 587 588 589
    SQLCHAR 		  *szCatalogName,
    SQLSMALLINT        cbCatalogName,
    SQLCHAR 		  *szSchemaName,
    SQLSMALLINT        cbSchemaName,
    SQLCHAR 		  *szTableName,
    SQLSMALLINT        cbTableName)
{
	mylog("[SQLTablePrivileges]");
	return PGAPI_TablePrivileges(hstmt, szCatalogName, cbCatalogName,
		szSchemaName, cbSchemaName, szTableName, cbTableName);
}

590 591
RETCODE SQL_API SQLBindParameter(
    HSTMT           hstmt,
592 593 594 595 596 597
    SQLUSMALLINT       ipar,
    SQLSMALLINT        fParamType,
    SQLSMALLINT        fCType,
    SQLSMALLINT        fSqlType,
    SQLUINTEGER        cbColDef,
    SQLSMALLINT        ibScale,
598
    PTR         rgbValue,
599 600 601 602 603 604 605 606
    SQLINTEGER         cbValueMax,
    SQLINTEGER 		  *pcbValue)
{
	mylog("[SQLBindParameter]");
	return PGAPI_BindParameter(hstmt, ipar, fParamType, fCType,
		fSqlType, cbColDef, ibScale, rgbValue, cbValueMax,
		pcbValue);
}