diff options
Diffstat (limited to 'src/interfaces/odbc/odbcapi30w.c')
-rw-r--r-- | src/interfaces/odbc/odbcapi30w.c | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/src/interfaces/odbc/odbcapi30w.c b/src/interfaces/odbc/odbcapi30w.c new file mode 100644 index 00000000000..d2a2005c1b9 --- /dev/null +++ b/src/interfaces/odbc/odbcapi30w.c @@ -0,0 +1,122 @@ +/*------- + * Module: odbcapi30w.c + * + * Description: This module contains UNICODE routines + * + * Classes: n/a + * + * API functions: SQLColAttributeW, SQLGetStmtW, SQLSetStmtW, + SQLSetConnectAttrW, SQLGetConnectAttrW, + SQLGetDescFieldW, SQLGetDescRecW, SQLGetDiagFieldW, + SQLGetDiagRecW, + *------- + */ + +#include "psqlodbc.h" +#include <stdio.h> +#include <string.h> + +#include "pgapifunc.h" +#include "connection.h" +#include "statement.h" + + +RETCODE SQL_API SQLGetStmtAttrW(SQLHSTMT hstmt, + SQLINTEGER fAttribute, + PTR rgbValue, + SQLINTEGER cbValueMax, + SQLINTEGER *pcbValue) +{ + RETCODE ret; + + mylog("[SQLGetStmtAttrW]"); + ret = PGAPI_GetStmtAttr(hstmt, fAttribute, rgbValue, + cbValueMax, pcbValue); + return ret; +} + +RETCODE SQL_API SQLSetStmtAttrW(SQLHSTMT hstmt, + SQLINTEGER fAttribute, + PTR rgbValue, + SQLINTEGER cbValueMax) +{ + RETCODE ret; + + mylog("[SQLSetStmtAttrW]"); + ret = PGAPI_SetStmtAttr(hstmt, fAttribute, rgbValue, + cbValueMax); + return ret; +} + +RETCODE SQL_API SQLGetConnectAttrW(HDBC hdbc, + SQLINTEGER fAttribute, + PTR rgbValue, + SQLINTEGER cbValueMax, + SQLINTEGER *pcbValue) +{ + RETCODE ret; + + mylog("[SQLGetConnectAttrW]"); + ret = PGAPI_GetConnectAttr(hdbc, fAttribute, rgbValue, + cbValueMax, pcbValue); + return ret; +} + +RETCODE SQL_API SQLSetConnectAttrW(HDBC hdbc, + SQLINTEGER fAttribute, + PTR rgbValue, + SQLINTEGER cbValue) +{ + RETCODE ret; + + mylog("[SQLSetConnectAttrW]"); + ret = PGAPI_SetConnectAttr(hdbc, fAttribute, rgbValue, + cbValue); + return ret; +} + +RETCODE SQL_API SQLGetDiagRecW(SWORD fHandleType, + SQLHANDLE handle, + SQLSMALLINT iRecord, + SQLWCHAR *szSqlState, + SQLINTEGER *pfNativeError, + SQLWCHAR *szErrorMsg, + SQLSMALLINT cbErrorMsgMax, + SQLSMALLINT *pcbErrorMsg) +{ + RETCODE ret; + SWORD tlen; + char *qst = NULL, *mtxt = NULL; + + mylog("[SQLGetDiagRecW]"); + if (szSqlState) + qst = malloc(8); + if (szErrorMsg) + mtxt = malloc(cbErrorMsgMax); + ret = PGAPI_GetDiagRec(fHandleType, handle, iRecord, qst, + pfNativeError, mtxt, cbErrorMsgMax, &tlen); + if (qst) + utf8_to_ucs2(qst, strlen(qst), szSqlState, 5); + if (pcbErrorMsg) + *pcbErrorMsg = utf8_to_ucs2(mtxt, tlen, szErrorMsg, cbErrorMsgMax); + free(qst); + free(mtxt); + return ret; +} + +RETCODE SQL_API SQLColAttributeW( + HSTMT hstmt, + SQLUSMALLINT icol, + SQLUSMALLINT fDescType, + PTR rgbDesc, + SQLSMALLINT cbDescMax, + SQLSMALLINT *pcbDesc, + SQLINTEGER *pfDesc) +{ + RETCODE ret; + + mylog("[SQLColAttributeW]"); + ret = PGAPI_ColAttributes(hstmt, icol, fDescType, rgbDesc, + cbDescMax, pcbDesc, pfDesc); + return ret; +} |