Для использования курсоров Firebird ODBC драйвера следует указывать команды:
// 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. Однако нужно подчеркнуть, что ключевым моментом, является использование утверждения перед соединением:
// 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 );
Для более подробного ознакомления с этими и другими возможностями пожалуйста, рассмотрите примеры.