![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|||||
|
|
|||||
| Migrating from OMODBC 1.0 to OMODBC 2.0 | |||||
| ------ |
The OMODBC 2.0 library extends the existing library by adding all the new functionality that was introduced in ODBC 3.0. The next biggest change between the OMODBC versions 1.0 and 2.0 is the introduction of opaque variables into the OmniMark language. The OMODBC 2.0 library defines three opaque data types that are used in the ODBC functions. These new opaque types are:
The SQL_Handle_type replaces the counter-type variables used in version 1.0 to represent environment, connection and statement handles. Usage of the opaque data type allows for better type-checking in calls to the OMODBC functions.
The SQL_Array_type and SQL_Vector_type replace the MemoryBlock counters used in version 1.0. These opaque data types allow better function type-checking and reduce memory access violations and leaks.
The following functions are no longer available in the OMODBC library.
The list of replacement functions is also presented.
OBSOLETE FUNCTION ALTERNATE
---------------------------- --------------------------
HSQLAllocMemoryBlock SQLSetArraySize
SQLSetVectorSize
HSQLCopyCounterToMemoryBlock SQLSetArrayAsCounter
SQLSetArrayAsCounterShelf
SQLSetVectorAsCounter
HSQLCopyMemoryBlockToCounter SQLGetArrayAsCounter
SQLGetArrayAsCounterShelf
SQLGetVectorAsCounter
HSQLCopyStreamToMemoryBlock SQLSetArrayAsStream
SQLSetArrayAsStreamShelf
SQLSetArrayAsString
SQLSetVectorAsStream
SQLSetVectorAsString
HSQLCopyMemoryBlockToStream SQLGetArrayAsStream
SQLGetArrayAsStreamShelf
SQLGetArrayAsString
SQLGetVectorAsStream
SQLGetVectorAsString
HSQLFreeMemoryBlock none
The introduction of the opaque types into the OmniMark language and
OMODBC library has resulted in data type changes in the OMODBC
functions. In general, these changes can be summarized in the
following table:
VERSION 1.0 DATA TYPE VERSION 2.0 DATA TYPE --------------------- --------------------- counter (henv) SQL_Handle_type counter (hdbc) SQL_Handle_type counter (hstmt) SQL_Handle_type counter (MemoryBlock) SQL_Array_type or SQL_Vector_type
The following table presents the list of all the OMODBC 1.0 functions
and all affected arguments.
FUNCTION VER 1.0 TYPE VER 1.0 ARG VER 2.0 TYPE
-------- ------------ ----------- ------------
SQLAllocConnect counter henv SQL_Handle_type
counter hdbc SQL_Handle_type
SQLAllocEnv counter henv SQL_Handle_type
SQLAllocStmt counter hdbc SQL_Handle_type
counter hstmt SQL_Handle_type
SQLBindCol counter hstmt SQL_Handle_type
counter rgbValue SQL_Array_type
counter pcbValue SQL_Array_type
SQLBindParameter counter hstmt SQL_Handle_type
counter rgbValue SQL_Array_type
counter pcbValue SQL_Array_type
SQLBrowseConnect counter hdbc SQL_Handle_type
SQLCancel counter hstmt SQL_Handle_type
SQLColAttributes counter hstmt SQL_Handle_type
SQLColumnPrivileges counter hstmt SQL_Handle_type
SQLColumns counter hstmt SQL_Handle_type
SQLConnect counter hdbc SQL_Handle_type
SQLDataSources counter henv SQL_Handle_type
SQLDescribeCol counter hstmt SQL_Handle_type
SQLDescribeParam counter hstmt SQL_Handle_type
SQLDisconnect counter hdbc SQL_Handle_type
SQLDriverConnect counter hdbc SQL_Handle_type
counter hwnd SQL_Handle_type
SQLDrivers counter henv SQL_Handle_type
SQLError counter henv SQL_Handle_type
counter hdbc SQL_Handle_type
counter hstmt SQL_Handle_type
SQLExecDirect counter hstmt SQL_Handle_type
SQLExecute counter hstmt SQL_Handle_type
SQLExtendedFetch counter hstmt SQL_Handle_type
counter rgfRowStatus SQL_Array_type
SQLFetch counter hstmt SQL_Handle_type
SQLForeignKeys counter hstmt SQL_Handle_type
SQLFreeConnect counter hdbc SQL_Handle_type
SQLFreeEnv counter henv SQL_Handle_type
SQLFreeStmt counter hstmt SQL_Handle_type
SQLGetConnectOption counter hdbc SQL_Handle_type
counter pvParam SQL_Vector_type
SQLGetCursorName counter hstmt SQL_Handle_type
SQLGetData counter hstmt SQL_Handle_type
SQLGetFunctions counter hdbc SQL_Handle_type
counter fExists SQL_Array_type
SQLGetInfo counter hdbc SQL_Handle_type
counter rgbInfoValue SQL_Vector_type
SQLGetStmtOption counter hstmt SQL_Handle_type
counter pvParam SQL_Vector_type
SQLGetTypeInfo counter hstmt SQL_Handle_type
SQLMoreResults counter hstmt SQL_Handle_type
SQLNativeSql counter hdbc SQL_Handle_type
SQLNumParams counter hstmt SQL_Handle_type
SQLNumResultCols counter hstmt SQL_Handle_type
SQLParamOptions counter hstmt SQL_Handle_type
SQLPrepare counter hstmt SQL_Handle_type
SQLPrimaryKeys counter hstmt SQL_Handle_type
SQLProcedureColumns counter hstmt SQL_Handle_type
SQLProcedures counter hstmt SQL_Handle_type
SQLPutData counter hstmt SQL_Handle_type
SQLRowCount counter hstmt SQL_Handle_type
SQLSetConnectOption counter hdbc SQL_Handle_type
counter vParam SQL_Vector_type
SQLSetCursorName counter hstmt SQL_Handle_type
SQLSetPos counter hstmt SQL_Handle_type
SQLSetScrollOptions counter hstmt SQL_Handle_type
SQLSetStmtOption counter hstmt SQL_Handle_type
counter vParam SQL_Vector_type
SQLSpecialColumns counter hstmt SQL_Handle_type
SQLStatistics counter hstmt SQL_Handle_type
SQLTablePrivileges counter hstmt SQL_Handle_type
SQLTables counter hstmt SQL_Handle_type
SQLTransact counter henv SQL_Handle_type
counter hdbc SQL_Handle_type
As well, a few functions have an added parameter to help identify the
type of data contained in the SQL_Vector_type argument. This requirement
is caused by the ODBC function requirement that the data in the
SQL_Vector_type argument may be passed by value or by reference. All of
the underlying ODBC API functions have been deprecated and use of the
replacement functions is recommended. The affected functions are listed
in the following table along with their replacements:
FUNCTION ADDED ARG REPLACEMENT FUNCTION -------- --------- -------------------- SQLGetStmtOption ValueType SQLGetStmtAttr SQLSetConnectOption ValueType SQLSetConnectAttr SQLSetStmtOption ValueType SQLSetStmtAttr
| ------ |
| ---- |