Для використання курсорів Firebird ODBC драйвера потрібно вказувати через SQLSetConnectAttr атрибут SQL_ATTR_ODBC_CURSORS:
// Specify that the Firebird ODBC Cursor is always used, then connect. SQLSetConnectAttr( hdbc, SQL_ATTR_ODBC_CURSORS, (SQLPOINTER)SQL_CUR_USE_DRIVER, 0 ); SQLConnect( hdbc, (UCHAR*)connectString, SQL_NTS, NULL, 0, NULL, 0 );На цей час Firebird ODBC драйвера, курсори Динамічний(Dynamic) і Клавіатурний(Keyset) будуть виконуватися в режимі Статичний(Static) курсор. Також не можливо модифікувати курсори. Для отримання найбільшої швидкості виконання використовуйте тип курсора вперед направлений(ForwardOnly).
Ця тема добре висвітлена в MSDN. Але потрібно підкреслити, що ключовим моментом, виявляється використання SQLSetConnectAttr, де атрибут SQL_ATTR_ODBC_CURSORS має значення SQL_CUR_USE_ODBC:
// Specify that the ODBC Cursor Library is always used, then connect. SQLSetConnectAttr( hdbc, SQL_ATTR_ODBC_CURSORS, (SQLPOINTER)SQL_CUR_USE_ODBC, 0 ); SQLConnect( hdbc, (UCHAR*)connectString, SQL_NTS, NULL, 0, NULL, 0 );Також слід відмітити, що результуючі набори даних заповнюють кеш в rowset буферах, тому для поновлення слід визивати:
SQLFetchScroll( hstmtSel, SQL_FETCH_RELATIVE, 0 );
Для більш детального знайомства з цими і іншими можливостями будьласка, розгляньте приклади.