|
|||||||||
|
|
|||||||||
| Functions | Platforms | ||||||||
| omodbc - low-level ODBC support |
|
||||||||
The OmniMark OMODBC library is a collection of ODBC external functions. The library provides easy, efficient, and portable access to ODBC data sources from within an OmniMark program using your existing ODBC-compliant database software drivers. The functions allow you to access all of the ODBC 3.0 functions used to view and manipulate data within a data source so that you can:
The OMODBC external function library consists of the following files:
opaque types, external function declarations and required pre-defined values.
The OMODBC external function library requires OmniMark 4.0 or higher. As well, the following lines must be included at the beginning of the OmniMark program:
; ODBC function and constant declarations include "omodbc.xin"
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 OMX variables into the OmniMark language. The OMODBC 2.0 library defines three OMX components that are used in the ODBC functions. These new OMX components are:
The SQL_Handle_type replaces the counter-type variables used in version 1.0 to represent environment, connection and statement handles. Using the OMX component 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 OMX components allow better function type-checking and reduce memory access violations and leaks.
Obsolete Functions
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
Modified Functions
Introducing the OMX components into the OmniMark language and
OMODBC library has made data type changes necessary in the OMODBC
functions. In general, these changes can be summarized in the
following table:
VERSION 1.0 DATA TYPE VERSION 2.0 OMX COMPONENT --------------------- --------------------- 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 OMX COMPONENT
-------- ------------ ----------- ------------
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 is needed because of 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 we recommend using the
replacement functions. 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
| ---- |