diff options
author | Hiroshi Inoue <inoue@tpf.co.jp> | 2002-03-28 08:08:07 +0000 |
---|---|---|
committer | Hiroshi Inoue <inoue@tpf.co.jp> | 2002-03-28 08:08:07 +0000 |
commit | 6852741c1879fd2bd5ab5b367c7fc5a130dfd4da (patch) | |
tree | a0f27a6fb623307b0772f2964f31707fd302972e /src/interfaces/odbc/odbcapi30w.c | |
parent | e6774dc3553d814e6aa500cabe5739b2e6f94df4 (diff) |
[2002-03-28]
1) Prepare to separate 4 kinds of Descriptor handles.
2) Detect the transaction status more naturally.
3) Improve Parse Statement functionality for the use
of updatable cursors.
4) Improve updatable cursors.
5) Implement SQLGetDescField() and improve SQLColAttribute().
6) etc.
Diffstat (limited to 'src/interfaces/odbc/odbcapi30w.c')
-rw-r--r-- | src/interfaces/odbc/odbcapi30w.c | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/src/interfaces/odbc/odbcapi30w.c b/src/interfaces/odbc/odbcapi30w.c index 35237202faa..0273f97b6b9 100644 --- a/src/interfaces/odbc/odbcapi30w.c +++ b/src/interfaces/odbc/odbcapi30w.c @@ -5,7 +5,7 @@ * * Classes: n/a * - * API functions: SQLColAttributeW, SQLGetStmtW, SQLSetStmtW, + * API functions: SQLColAttributeW, SQLGetStmtAttrW, SQLSetStmtAttrW, SQLSetConnectAttrW, SQLGetConnectAttrW, SQLGetDescFieldW, SQLGetDescRecW, SQLGetDiagFieldW, SQLGetDiagRecW, @@ -75,6 +75,48 @@ RETCODE SQL_API SQLSetConnectAttrW(HDBC hdbc, return ret; } +/* new function */ +RETCODE SQL_API +SQLSetDescFieldW(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, + SQLSMALLINT FieldIdentifier, PTR Value, + SQLINTEGER BufferLength) +{ + RETCODE ret; + UInt4 vallen; + char *uval = NULL; + BOOL val_alloced = FALSE; + + mylog("[SQLSetDescFieldW]"); + if (BufferLength > 0) + { + uval = ucs2_to_utf8(Value, BufferLength / 2, &vallen); + val_alloced = TRUE; + } + else + { + uval = Value; + vallen = BufferLength; + } + ret = PGAPI_SetDescField(DescriptorHandle, RecNumber, FieldIdentifier, + uval, vallen); + if (val_alloced) + free(uval); + return ret; +} +RETCODE SQL_API +SQLGetDescFieldW(SQLHDESC hdesc, SQLSMALLINT iRecord, SQLSMALLINT iField, + PTR rgbValue, SQLINTEGER cbValueMax, + SQLINTEGER *pcbValue) +{ + RETCODE ret; + char *qstr = NULL, *mtxt = NULL; + + mylog("[SQLGetDescFieldW]"); + ret = PGAPI_GetDescField(hdesc, iRecord, iField, rgbValue, + cbValueMax, pcbValue); + return ret; +} + RETCODE SQL_API SQLGetDiagRecW(SWORD fHandleType, SQLHANDLE handle, SQLSMALLINT iRecord, @@ -131,7 +173,25 @@ RETCODE SQL_API SQLColAttributeW( RETCODE ret; mylog("[SQLColAttributeW]"); + switch (fDescType) + { + case SQL_DESC_BASE_COLUMN_NAME: + case SQL_DESC_BASE_TABLE_NAME: + case SQL_DESC_CATALOG_NAME: + case SQL_DESC_LABEL: + case SQL_DESC_LITERAL_PREFIX: + case SQL_DESC_LITERAL_SUFFIX: + case SQL_DESC_LOCAL_TYPE_NAME: + case SQL_DESC_NAME: + case SQL_DESC_SCHEMA_NAME: + case SQL_DESC_TABLE_NAME: + case SQL_DESC_TYPE_NAME: + case SQL_COLUMN_NAME: + break; + } + ret = PGAPI_ColAttributes(hstmt, icol, fDescType, rgbDesc, cbDescMax, pcbDesc, pfDesc); + return ret; } |