Функции драйвера
В следующей таблице приведены сведения о функциях и атрибутах инструкции драйвера ODBC 3.x , который должен реализовываться для блочных и прокручиваемых курсоров.
Функция или атрибут инструкции |
Комментарии |
---|---|
SQL_ATTR_ROW_STATUS_PTR | Задает адрес массива состояния строки, заполненного SQLFetch и SQLFetchScroll. Этот массив также заполняется SQLSetPos, если SQLSetPos вызывается в состоянии инструкции S6. Если SQLSetPos вызывается в состоянии S7, этот массив не заполняется, но массив, на который указывает аргумент RowStatusArray SQLExtendedFetch, заполняется. Дополнительные сведения см. в разделе "Переходы инструкций " в приложении B: таблицы перехода состояния ODBC. |
SQL_ATTR_ROWS_FETCHED_PTR | Задает адрес буфера, в котором SQLFetch и SQLFetchScroll возвращают количество строк, извлекаемых. Если вызывается SQLExtendedFetch , этот буфер не заполняется, но аргумент RowCountPtr указывает на количество строк, извлекаемых. |
SQL_ATTR_ROW_ARRAY_SIZE | Задает размер набора строк, используемый SQLFetch и SQLFetchScroll. |
SQL_ROWSET_SIZE | Задает размер набора строк, используемый SQLExtendedFetch. Драйверы ODBC 3.x реализуют это, если они хотят работать с приложениями ODBC 2.x, которые вызывают SQLExtendedFetch или SQLSetPos. |
SQLBulkOperations | Если драйвер ODBC 3.x должен работать с приложениями ODBC 2.x, используюющими SQLSetPos с операцией SQL_ADD, драйвер должен поддерживать SQLSetPos с операцией SQL_ADD в дополнение к SQLBulkOperations с операцией SQL_ADD. |
Sqlextendedfetch | Возвращает указанный набор строк. Драйверы ODBC 3.x реализуют это, если они хотят работать с приложениями ODBC 2.x, которые вызывают SQLExtendedFetch или SQLSetPos. Ниже приведены сведения о реализации. — Драйвер извлекает размер набора строк из значения атрибута оператора SQL_ROWSET_SIZE. — Драйвер извлекает адрес массива состояния строки из аргумента RowStatusArray , а не атрибута оператора SQL_ATTR_ROW_STATUS_PTR. Аргумент RowStatusArray в вызове SQLExtendedFetch не должен быть пустым указателем. (Обратите внимание, что в ODBC 3.x атрибут инструкции SQL_ATTR_ROW_STATUS_PTR может быть указателем null.) — Драйвер извлекает адрес извлекаемого буфера строк из аргумента RowCountPtr , а не атрибута инструкции SQL_ATTR_ROWS_FETCHED_PTR. — Драйвер возвращает SQLSTATE 01S01 (ошибка в строке), чтобы указать, что произошла ошибка во время получения строк вызовом SQLExtendedFetch. Драйвер ODBC 3.x должен возвращать SQLSTATE 01S01 (ошибка в строке), только если вызывается SQLExtendedFetch , а не при вызове SQLFetch или SQLFetchScroll . Чтобы сохранить обратную совместимость, когда SQLSTATE 01S01 (ошибка в строке) возвращается SQLExtendedFetch, диспетчер драйверов не упорядочивает записи состояния в очереди ошибок в соответствии с правилами, указанными в разделе "Последовательность записей состояния" в SQLGetDiagField. |
SQLFetch | Возвращает следующий набор строк. Ниже приведены сведения о реализации. — Драйвер извлекает размер набора строк из значения атрибута оператора SQL_ATTR_ROW_ARRAY_SIZE. — Драйвер извлекает адрес массива состояния строки из атрибута оператора SQL_ATTR_ROW_STATUS_PTR. — Драйвер извлекает адрес извлекаемого буфера строк из атрибута инструкции SQL_ATTR_ROWS_FETCHED_PTR. — приложение может смешивать вызовы между SQLFetchScroll и SQLFetch. - SQLFetch возвращает закладки, если столбец 0 привязан. - SqlFetch можно вызвать для возврата нескольких строк. — Драйвер не возвращает SQLSTATE 01S01 (ошибка в строке), чтобы указать, что произошла ошибка во время получения строк вызовом SQLFetch. |
SQLFetchScroll | Возвращает указанный набор строк. Ниже приведены сведения о реализации. — Драйвер извлекает размер набора строк из атрибута инструкции SQL_ATTR_ROW_ARRAY_SIZE. — Драйвер извлекает адрес массива состояния строки из атрибута оператора SQL_ATTR_ROW_STATUS_PTR. — Драйвер извлекает адрес извлекаемого буфера строк из атрибута инструкции SQL_ATTR_ROWS_FETCHED_PTR. — приложение может смешивать вызовы между SQLFetchScroll и SQLFetch. — Драйвер не возвращает SQLSTATE 01S01 (ошибка в строке), чтобы указать, что произошла ошибка во время получения строк вызовом SQLFetchScroll. |
Sqlsetpos | Выполняет различные размещенные операции. Ниже приведены сведения о реализации. — Это можно назвать в заявлениях состояния S6 или S7. Дополнительные сведения см. в разделе "Переходы инструкций " в приложении B: таблицы перехода состояния ODBC. — Если это вызывается в состоянии инструкции S5 или S6, драйвер извлекает размер набора строк из атрибута инструкции SQL_ATTR_ROWS_FETCHED_PTR и адрес массива состояния строки из атрибута инструкции SQL_ATTR_ROW_STATUS_PTR. — Если это вызывается в состоянии инструкции S7, драйвер извлекает размер набора строк из атрибута оператора SQL_ROWSET_SIZE и адрес массива состояния строки из аргумента RowStatusArray sqlExtendedFetch. — Драйвер возвращает SQLSTATE 01S01 (ошибка в строке), чтобы указать, что произошла ошибка во время получения строк вызовом SQLSetPos , чтобы выполнить массовую операцию при вызове функции в состоянии S7. Чтобы сохранить обратную совместимость, если SQLSTATE 01S01 (ошибка в строке) возвращается SQLSetPos, диспетчер драйверов не упорядочивает записи состояния в очереди ошибок в соответствии с правилами, указанными в разделе "Последовательность записей состояния" в SQLGetDiagField. — Если драйвер должен работать с приложениями ODBC 2.x, которые вызывают SQLSetPos с аргументом операции SQL_ADD, драйвер должен поддерживать SQLSetPos с аргументом операции SQL_ADD. |