Функции диспетчера драйверов
В следующей таблице показано, как диспетчер драйверов ODBC 3.x сопоставляет вызовы драйверов ODBC 2.x и ODBC 3.x.
Функция или атрибут инструкции |
Комментарии |
---|---|
SQL_ATTR_FETCH_BOOKMARK_PTR | Указывает на закладку, используемую с SQLFetchScroll. Ниже приведены сведения о реализации. — Когда приложение устанавливает это в драйвере ODBC 2.x, диспетчер драйверов ODBC 3.x кэширует его. Он различает указатель и передает значение драйверу ODBC 2.x в аргументе FetchOffset SQLExtendedFetch, когда SQLFetchScroll позже вызывается приложением. — Когда приложение устанавливает это в драйвере ODBC 3.x, диспетчер драйверов ODBC 3.x передает вызов драйверу. |
SQL_ATTR_ROW_STATUS_PTR | Указывает на массив состояния строки, заполненный SQLFetch, SQLFetchScroll, SQLBulkOperations и SQLSetPos. Ниже приведены сведения о реализации. — Когда приложение устанавливает это в драйвере ODBC 2.x, диспетчер драйверов ODBC 3.x кэширует его значение. Он передает это значение драйверу ODBC 2.x в аргументе RowStatusArray SQLExtendedFetch при вызове SQLFetchScroll или SQLFetch. — Когда приложение устанавливает это в драйвере ODBC 3.x, диспетчер драйверов ODBC 3.x передает вызов драйверу. — В состоянии S6, если приложение задает SQL_ATTR_ROW_STATUS_PTR, а затем вызывает SQLBulkOperations (с операцией SQL_ADD) или SQLSetPos без первого вызова SQLFetch или SQLFetchScroll, возвращается SQLSTATE HY011 (атрибут не может быть задан). |
SQL_ATTR_ROWS_FETCHED_PTR | Указывает на буфер, в котором SQLFetch и SQLFetchScroll возвращают количество строк, извлекаемых. Ниже приведены сведения о реализации. — Когда приложение устанавливает это в драйвере ODBC 2.x, диспетчер драйверов ODBC 3.x кэширует его значение. Он передает это значение драйверу ODBC 2.x в аргументе RowCountPtr SQLExtendedFetch при вызове SQLFetch или SQLFetchScroll. — Когда приложение устанавливает это в драйвере ODBC 3.x, диспетчер драйверов ODBC 3.x передает вызов драйверу. |
SQL_ATTR_ROW_ARRAY_SIZE | Задает размер набора строк. Ниже приведены сведения о реализации. — Когда приложение устанавливает это в драйвере ODBC 2.x, диспетчер драйверов ODBC 3.x сопоставляет его с атрибутом оператора SQL_ROWSET_SIZE. — Когда приложение устанавливает это в драйвере ODBC 3.x, диспетчер драйверов ODBC 3.x передает вызов драйверу. — Если приложение, работающее с драйвером ODBC 3.x , вызывает SQLSetScrollOptions, SQL_ROWSET_SIZE задается значением в аргументе RowsetSize , если базовый драйвер не поддерживает SQLSetScrollOptions. |
SQL_ROWSET_SIZE | Задает размер набора строк, используемый SQLExtendedFetch, когда SQLExtendedFetch вызывается приложением ODBC 2.x. Ниже приведены сведения о реализации. — Когда приложение задает это, диспетчер драйверов ODBC 3.x передает вызов драйверу независимо от версии драйвера. — Если приложение, работающее с драйвером ODBC 2.x , вызывает SQLSetScrollOptions, SQL_ROWSET_SIZE задается значением в аргументе RowsetSize . |
SQLBulkOperations | Выполняет операцию вставки, обновление, удаление или получение операций закладки. Ниже приведены сведения о реализации. — Когда приложение вызывает SQLBulkOperations с операцией SQL_ADD в драйвере ODBC 2.x, диспетчер драйверов ODBC 3.x сопоставляет его с SQLSetPos с операцией SQL_ADD. — При работе с драйвером ODBC 2.x, который не поддерживает SQLSetPos с операцией SQL_ADD, диспетчер драйверов ODBC 3.x не сопоставляет SQLSetPos с операцией SQL_ADD с SQLBulkOperations с операцией SQL_ADD. Это связано с тем, что SQLBulkOperations не может вызываться в состоянии S7, которое в ODBC 2.x было единственным состоянием, в котором можно было вызвать SQLSetPos . — Если приложение вызывает SQLBulkOperations с операцией SQL_ADD в драйвере ODBC 2.x перед вызовом SQLFetchScroll, диспетчер драйверов ODBC 3.x возвращает ошибку. |
Sqlextendedfetch | Возвращает указанный набор строк. За исключением только что указанного ограничения, диспетчер драйверов ODBC 3.x передает вызовы SQLExtendedFetch драйверу независимо от версии драйвера. |
SQLFetch | Возвращает следующий набор строк. Ниже приведены сведения о реализации. — Когда приложение вызывает SQLFetch в драйвере ODBC 2.x, диспетчер драйверов ODBC 3.x сопоставляет его с SQLExtendedFetch. Аргумент FetchOrientation sqlExtendedFetch имеет значение SQL_FETCH_NEXT. Диспетчер драйверов использует кэшированное значение атрибута инструкции SQL_ATTR_ROW_STATUS_PTR для аргумента RowStatusArray и кэшированного значения атрибута инструкции SQL_ATTR_ROWS_FETCHED_PTR для аргумента RowCountPtr . — Приложение ODBC 3.x может смешивать вызовы SQLFetch и SQLFetchScroll в драйвере ODBC 2.x, так как диспетчер драйверов ODBC 3.x сопоставляет SQLFetch с SQLExtendedFetch при вызове приложения в драйвере ODBC 2.x. — Если драйвер ODBC 2.x не поддерживает SQLExtendedFetch, диспетчер драйверов ODBC 3.x не сопоставляет SQLFetch или SQLFetchScroll с SQLExtendedFetch при вызове приложения в этом драйвере. Если приложение пытается задать SQL_ATTR_ROW_ARRAY_SIZE значением больше 1, возвращается sqlSTATE HYC00 (необязательный компонент не реализован). — За исключением только что отмеченных ограничений, диспетчер драйверов ODBC 3.x передает вызовы SQLFetch драйверу независимо от версии драйвера. |
SQLFetchScroll | Возвращает указанный набор строк. Ниже приведены сведения о реализации. — Когда приложение вызывает SQLFetchScroll в драйвере ODBC 2.x, диспетчер драйверов ODBC 3.x сопоставляет его с SQLExtendedFetch. Он использует кэшированное значение атрибута инструкции SQL_ATTR_ROW_STATUS_PTR для аргумента RowStatusArray и кэшированного значения атрибута инструкции SQL_ATTR_ROWS_FETCHED_PTR для аргумента RowCountPtr . Если аргумент FetchOrientation в SQLFetchScroll SQL_FETCH_BOOKMARK, он использует кэшированное значение атрибута инструкции SQL_ATTR_FETCH_BOOKMARK_PTR для аргумента FetchOffset и возвращает ошибку, если аргумент FetchOffset SQLFetchScroll не равен 0. — Когда приложение вызывает это в драйвере ODBC 3.x, диспетчер драйверов ODBC 3.x передает вызов драйверу. |
Sqlsetpos | Выполняет различные размещенные операции. Диспетчер драйверов ODBC 3.x передает вызовы SQLSetPos драйверу независимо от версии драйвера. |
SQLSetScrollOptions | Если диспетчер драйверов сопоставляет SQLSetScrollOptions для приложения, работающего с драйвером ODBC 3.x , который не поддерживает SQLSetScrollOptions, диспетчер драйверов задает параметр инструкции SQL_ROWSET_SIZE, а не атрибут инструкции SQL_ATTR_ROW_ARRAY_SIZE, аргумент RowsetSize в SQLSetScrollOption. В результате SQLSetScrollOptions нельзя использовать приложением при получении нескольких строк вызовом SQLFetch или SQLFetchScroll. Его можно использовать только при получении нескольких строк вызовом SQLExtendedFetch. |