aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/odbc/odbcapi30w.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/odbc/odbcapi30w.c')
-rw-r--r--src/interfaces/odbc/odbcapi30w.c122
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;
+}