Applies To:
  • CitectSCADA 1.x 2.x 3.x 4.x

Summary:
When using the SQL functions within Citect some database drivers are not compatible with Citect.

Solution:
Citect will not perform SQL functions correctly unless the driver is level 0 compliant. Below lists the different levels of compliancy and the required functions.

ODBC Compatibility

QELIB uses the ODBC API to communicate with database drivers. This section lists the ODBC functions that QELIB uses. You should be aware of these compatibility issues when using ODBC database drivers other than those supplied by Q+E.

Required functions

QELIB will not run if the database driver does not implement the following ODBC functions:

Level 0 Compliance

The following are required Level 0 functions:

  • SQLAllocConnect
  • SQLAllocEnv
  • SQLAllocStmt
  • SQLBindCol
  • SQLColAttributes
  • SQLDescribeCol
  • SQLDisconnect
  • SQLError
  • SQLExecDirect
  • SQLExecute
  • SQLFetch
  • SQLFreeStmt
  • SQLGetCursorName
  • SQLNumResultCols
  • SQLPrepare
  • SQLRowCount
  • SQLSetParam.

Level 1 Compliance

The following are required Level 1 functions:

  • SQLColumns
  • SQLDriverConnect
  • SQLGetData
  • SQLGetFunctions
  • SQLGetInfo
  • SQLGetTypeInfo
  • SQLParamData
  • SQLPutData
  • SQLSetConnectOption
  • SQLSetStmtOption.

Optional Functions

These functions are used by QELIB, but can be absent in a driver. If a driver does not support these functions, pieces of QELIB functionality will not work. This information is listed by function.

Level 0 Compliance

There is one optional Level 0 function, as follows:

  • SQLTransact - Failure to implement this function will cause qeBeginTran, qeCommit and qeRollback to be unsupported.

Level 1 Compliance

The following Level 1 functions are optional:

  • SQLSpecialColumns - QELIB will use this function if it is available, but no functions are disabled if it is not.
  • SQLTables - Failure to implement this function will cause qeTables to fail, and will make the Query Builder unable to populate the table name list box.

Level 2 Compliance

The following Level 2 functions are optional:

  • SQLDataSources - The driver does not have to implement this function, it is provided by ODBC.
  • SQLExtendedFetch - Failure to implement these functions will result in QELIB being unable to take advantage of the native database's ability to fetch records at random.
  • SQLSetScrollOption - Failure to implement these functions will result in QELIB being unable to take advantage of the native database's ability to fetch records at random.
  • SQLMoreResults - Failure to implement this function will cause qeMoreResults to fail.
  • SQLNativeSql - Failure to implement this function will cause qeNativeSQL to fail.
  • SQLProcedureColumns - Failure to implement this function will cause qeProcedureColumns to fail.
 

Keywords:
 

Attachments