Переходы инструкций
Операторы ODBC имеют следующие состояния.
State | Description |
---|---|
S0 | Нераспределенный оператор. (Состояние подключения должно быть C4, C5 или C6. Дополнительные сведения см. в разделе "Переходы подключений".) |
S1 | Выделенная инструкция. |
S2 | Подготовленная инструкция. Результирующий набор не будет создан. |
S3 | Подготовленная инструкция. Будет создан результирующий набор (возможно, пустой). |
S4 | Оператор выполнен и не был создан результирующий набор. |
S5 | Выполнена инструкция, и был создан (возможно, пустой) результирующий набор. Курсор открыт и расположен перед первой строкой результирующий набор. |
S6 | Курсор, расположенный с помощью SQLFetch или SQLFetchScroll. |
S7 | Курсор, расположенный с помощью SQLExtendedFetch. |
S8 | Функция нуждается в данных. SQLParamData не был вызван. |
S9 | Функция нуждается в данных. SQLPutData не был вызван. |
S10 | Функция нуждается в данных. Вызывается SQLPutData . |
S11 | По-прежнему выполняется. Оператор остается в этом состоянии после асинхронного возврата функции SQL_STILL_EXECUTING. Оператор временно находится в этом состоянии, пока любая функция, принимаюющая дескриптор инструкции, выполняется. Временное проживание в штате S11 не отображается в таблицах состояний, кроме таблицы состояний для SQLCancel. Хотя оператор временно находится в состоянии S11, функция может быть отменена путем вызова SQLCancel из другого потока. |
S12 | Асинхронное выполнение отменено. В S12 приложение должно вызывать отмененную функцию, пока она не возвращает значение, отличное от SQL_STILL_EXECUTING. Функция была отменена успешно, только если функция возвращает SQL_ERROR и SQLSTATE HY008 (операция отменена). Если он возвращает любое другое значение, например SQL_SUCCESS, операция отмены завершилась ошибкой и функция выполнялась нормально. |
Состояния S2 и S3 называются подготовленными состояниями, состояния S5 до S7 в качестве состояния курсора, состояния S8 до S10 в качестве состояний необходимых данных, а также состояния S11 и S12 в качестве асинхронных состояний. В каждой из этих групп переходы отображаются отдельно, только если они отличаются для каждого состояния в группе; В большинстве случаев переходы для каждого состояния в каждой группе одинаковы.
В следующих таблицах показано, как каждая функция ODBC влияет на состояние инструкции.
SQLAllocHandle
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
--[1], [5], [6] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
--[2], [5] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
S1[3] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
--[4], [5] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
[1] Эта строка показывает переходы при SQL_HANDLE_ENV HandleType .
[2] Эта строка показывает переходы при SQL_HANDLE_DBC HandleType .
[3] Эта строка показывает переходы при SQL_HANDLE_STMT HandleType .
[4] Эта строка показывает переходы при SQL_HANDLE_DESC HandleType .
[5] Вызов SQLAllocHandle с OutputHandlePtr , указывающий на допустимые перезаписи дескриптора, которые обрабатываются без учета предыдущего содержимого для этого дескриптора и могут вызвать проблемы с драйверами ODBC. Неправильное программирование приложения ODBC для вызова SQLAllocHandle дважды с той же переменной приложения, определенной для *OutputHandlePtr без вызова SQLFreeHandle, чтобы освободить дескриптор перед перераспредещением. Перезапись дескрипторов ODBC таким образом может привести к несогласованному поведению или ошибкам в части драйверов ODBC.
SQLBindCol
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | HY010 | HY010 |
SQLBindParameter
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | HY010 | HY010 |
SQLBrowseConnect, SQLConnect и SQLDriverConnect
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
08002 | 08002 | 08002 | 08002 | 08002 | 08002 | 08002 |
SQLBulkOperations
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24000 | См. следующую таблицу | HY010 | NS [c] HY010 o |
SQLBulkOperations (состояния курсора)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
-- [s] S8 [d] S11 [x] | -- [s] S8 [d] S11 [x] | HY010 |
SQLCancel
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | S1[1] S2 [nr] и [2] S3 [r], [2] S5[3] и [5] S6([3] или [4]) и [6] S7[4] и [7] | См. следующую таблицу |
[1] SQLExecDirect вернул SQL_NEED_DATA.
[2] SQLExecute вернулся SQL_NEED_DATA.
[3] SQLBulkOperations вернулся SQL_NEED_DATA.
[4] SQLSetPos вернул SQL_NEED_DATA.
[5] SQLFetch, SQLFetchScroll или SQLExtendedFetch не были вызваны.
[6] БЫЛ вызван SQLFetch или SQLFetchScroll .
[7] SQLExtendedFetch был вызван.
SQLCancel (асинхронные состояния)
S11 По-прежнему выполняется |
S12 Asynch отменен |
---|---|
NS[1] S12[2] | S12 |
[1] Оператор временно находился в состоянии S11 во время выполнения функции. SQLCancel был вызван из другого потока.
[2] Оператор находился в состоянии S11, так как функция, называемая асинхронно возвращенной SQL_STILL_EXECUTING.
SQLCloseCursor
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | 24000 | 24000 | 24000 | S1 [np] S3 [p] | HY010 | HY010 |
SQLColAttribute
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | См. следующую таблицу | 24000 | -- [s] S11 [x] | HY010 | NS [c] HY010 o |
SQLColAttribute (подготовленные состояния)
S2 Нет результатов |
S3 Результаты |
---|---|
--[1] 07005[2] | -- [s] S11 x |
[1] FieldIdentifier был SQL_DESC_COUNT.
[2] FieldIdentifier не был SQL_DESC_COUNT.
SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedureColumns, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges и SQLTable
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
(IH) | S5 [s] S11 [x] | S1 [e] S5 [s] S11 [x] | S1 [e] и [1] S5 [s] и [1] S11 [x] и [1] 24000[2] | См. следующую таблицу | HY010 | NS [c] HY010 o |
[1] Текущий результат является последним или единственным результатом, или нет текущих результатов. Дополнительные сведения о нескольких результатах см. в разделе "Несколько результатов".
[2] Текущий результат не является последним результатом.
SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges и SQLTableS (состояния курсоров)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24000 | 24000[1] | 24000 |
[1] Эта ошибка возвращается диспетчером драйверов, если SQLFetch или SQLFetchScroll не вернул SQL_NO_DATA и возвращается драйвером, если SQLFetch или SQLFetchScroll вернул SQL_NO_DATA.
SQLCopyDesc
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH[1] | -- | -- | -- | -- | HY010 | NS [c] и [3] HY010 [o] или [4] |
IH[2] | HY010 | См. следующую таблицу | 24000 | -- [s] S11 x | HY010 | NS [c] и [3] HY010 [o] или [4] |
[1] Эта строка показывает переходы, когда аргумент SourceDescHandle был ARD, APD или IPD.
[2] Эта строка показывает переходы, когда аргумент SourceDescHandle был IRD.
[3] Аргументы SourceDescHandle и TargetDescHandle были одинаковыми, как и в функции SQLCopyDesc, которая выполняется асинхронно.
[4] Аргумент SourceDescHandle или аргумент TargetDescHandle (или оба) отличались от функции SQLCopyDesc, которая выполняется асинхронно.
SQLCopyDesc (подготовленные состояния)
S2 Нет результатов |
S3 Результаты |
---|---|
24000[1] | -- [s] S11 [x] |
[1] Эта строка показывает переходы, когда аргумент SourceDescHandle был IRD.
SQLDataSources и SQLDrivers
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLDescribeCol
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | См. следующую таблицу | 24000 | -- [s] S11 [x] | HY010 | NS [c] HY010 o |
SQLDescribeCol (подготовленные состояния)
S2 Нет результатов |
S3 Результаты |
---|---|
07005 | -- [s] S11 [x] |
SQLDescribeParam
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | -- [s] S11 [x] | HY010 | HY010 | HY010 | NS [c] HY010 [o] |
SQLDisconnect
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
--[1] | S0[1] | S0[1] | S0[1] | S0[1] | (HY010) | (HY010) |
[1] Вызов SQLDisconnect освобождает все инструкции, связанные с подключением. Кроме того, это возвращает состояние подключения к C2; Состояние подключения должно быть C4, прежде чем состояние оператора — S0.
SQLEndTran
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
-- | -- | --[2] или [3] S1[1] | --[3] S1 [np] и ([1] или [2]) S1 [p] и [1] S2 [p] и [2] | --[3] S1 [np] и ([1] или [2]) S1 [p] и [1] S3 [p] и [2] | (HY010) | (HY010) |
[1] Аргумент CompletionType имеет значение SQL_COMMIT, а SQLGetInfo возвращает SQL_CB_DELETE для типа сведений SQL_CURSOR_COMMIT_BEHAVIOR, или аргумент CompletionType SQL_ROLLBACK, а SQLGetInfo возвращает SQL_CB_DELETE для типа сведений SQL_CURSOR_ROLLBACK_BEHAVIOR.
[2] Аргумент CompletionType имеет значение SQL_COMMIT, а SQLGetInfo возвращает SQL_CB_CLOSE для типа сведений SQL_CURSOR_COMMIT_BEHAVIOR, или аргумент CompletionType SQL_ROLLBACK, а SQLGetInfo возвращает SQL_CB_CLOSE для типа сведений SQL_CURSOR_ROLLBACK_BEHAVIOR.
[3] Аргумент CompletionType имеет значение SQL_COMMIT, а SQLGetInfo возвращает SQL_CB_PRESERVE для типа сведений SQL_CURSOR_COMMIT_BEHAVIOR, или аргумент CompletionType SQL_ROLLBACK, а SQLGetInfo возвращает SQL_CB_PRESERVE для типа сведений SQL_CURSOR_ROLLBACK_BEHAVIOR.
SQLExecDirect
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
(IH) | S4 [s] и [nr] S5 [s] и [r] S8 [d] S11 [x] | -- [e] и [1] S1 [e] и [2] S4 [s] и [nr] S5 [s] и [r] S8 [d] S11 [x] | -- [e], [1], [3] S1 [e], [2], [3] S4 [s], [nr], [3] S5 [s], [r], [3] S8 [d] и [3] S11 [x] и [3] 24000 [4] | См. следующую таблицу | HY010 | NS [c] HY010 [o] |
[1] Ошибка была возвращена диспетчером драйверов.
[2] Ошибка не была возвращена диспетчером драйверов.
[3] Текущий результат является последним или единственным результатом, или нет текущих результатов. Дополнительные сведения о нескольких результатах см. в разделе "Несколько результатов".
[4] Текущий результат не является последним результатом.
SQLExecDirect (состояния курсора)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24000 | 24000 [1] | 24000 |
[1] Эта ошибка возвращается диспетчером драйверов, если SQLFetch или SQLFetchScroll не вернул SQL_NO_DATA и возвращается драйвером, если SQLFetch или SQLFetchScroll вернул SQL_NO_DATA.
SQLExecute
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
(IH) | (HY010) | См. следующую таблицу | S2 [e], p и [1] S4 [s], [p], [nr], и [1] S5 [s], [p], [r], и [1] S8 [d], [p], [1] S11 [x], [p], и [1] 24000 [p] и [2] HY010 [np] | См. таблицу состояний курсора | HY010 | NS [c] HY010 [o] |
[1] Текущий результат является последним или единственным результатом, или нет текущих результатов. Дополнительные сведения о нескольких результатах см. в разделе "Несколько результатов".
[2] Текущий результат не является последним результатом.
SQLExecute (подготовленные состояния)
S2 Нет результатов |
S3 Результаты |
---|---|
S4 [s] S8 [d] S11 [x] | S5 [s] S8 [d] S11 [x] |
SQLExecute (состояния курсоров)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24000 [p] HY010 [np] | 24000 [p], [1] HY010 [np] | 24000 [p] HY010 [np] |
[1] Эта ошибка возвращается диспетчером драйверов, если SQLFetch или SQLFetchScroll не вернул SQL_NO_DATA и возвращается драйвером, если SQLFetch или SQLFetchScroll вернул SQL_NO_DATA.
Sqlextendedfetch
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | S1010 | S1010 | 24000 | См. следующую таблицу | S1010 | NS [c] S1010 [o] |
SQLExtendedFetch (состояния курсоров)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
S7 [s] или [nf] S11 [x] | S1010 | -- [s] или [nf] S11 [x] |
SQLFetch и SQLFetchScroll
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24000 | См. следующую таблицу | HY010 | NS [c] HY010 [o] |
SQLFetch и SQLFetchScroll (состояния курсора)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
S6 [s] или [nf] S11 [x] | -- [s] или [nf] S11 [x] | HY010 |
SQLFreeHandle
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
-- [1] | HY010 | HY010 | HY010 | HY010 | HY010 | HY010 |
IH [2] | S0 | S0 | S0 | S0 | HY010 | HY010 |
-- [3] | -- | -- | -- | -- | -- | -- |
[1] Эта строка показывает переходы, когда HandleType был SQL_HANDLE_ENV или SQL_HANDLE_DBC.
[2] Эта строка показывает переходы при SQL_HANDLE_STMT HandleType .
[3] Эта строка показывает переходы, когда HandleType был SQL_HANDLE_DESC, а дескриптор был явно выделен.
Функция SQLFreeStmt
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH [1] | -- | -- | S1 [np] S2 [p] | S1 [np] S3 [p] | HY010 | HY010 |
IH [2] | -- | -- | -- | -- | HY010 | HY010 |
[1] Эта строка показывает переходы, когда параметр был SQL_CLOSE.
[2] Эта строка показывает переходы, когда параметр был SQL_UNBIND или SQL_RESET_PARAMS. Если аргумент Option был SQL_DROP, а базовый драйвер — драйвер ODBC 3*.x*, диспетчер драйверов сопоставляет это с вызовом SQLFreeHandle с параметром HandleType, установленным для SQL_HANDLE_STMT. Дополнительные сведения см. в таблице перехода для SQLFreeHandle.
SQLGetConnectAttr
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetCursorName
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | HY010 | HY010 |
SQLGetData
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24000 | См. следующую таблицу | HY010 | NS [c] HY010 [o] |
SQLGetData (состояния курсора)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24000 | -- [s] или [nf] S11 [x] 24000 [b] HY109 [i] | -- [s] или [nf] S11 [x] 24000 [b] HY109 [i] |
SQLGetDescField и SQLGetDescRec
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | -- [1] или [2] HY010 [3] | См. следующую таблицу | -- [1] или [2] 24000 [3] | -- [1], [2], или [3] S11 [3] и [x] | HY010 | NS [c] или [4] HY010 [o] и [5] |
[1] Аргумент DescriptorHandle был APD или ARD.
[2] Аргумент DescriptorHandle был IPD.
[3] Аргумент DescriptorHandle был IRD.
[4] Аргумент DescriptorHandle совпадает с аргументом DescriptorHandle в функции SQLGetDescField или SQLGetDescRec, которая выполняется асинхронно.
[5] Аргумент DescriptorHandle отличается от аргумента DescriptorHandle в функции SQLGetDescField или SQLGetDescRec, которая выполняется асинхронно.
SQLGetDescField и SQLGetDescRec (подготовленные состояния)
S2 Нет результатов |
S3 Результаты |
---|---|
--[1], [2], или [3] S11[2] и [x] | --[1], [2], или [3] S11 [x] |
[1] Аргумент DescriptorHandle был APD или ARD.
[2] Аргумент DescriptorHandle был IPD.
[3] Аргумент DescriptorHandle был IRD. Обратите внимание, что эти функции всегда возвращают SQL_NO_DATA в состоянии S2, когда ДескрипторHandle был IRD.
SQLGetDiagField и SQLGetDiagRec
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
--[1] | -- | -- | -- | -- | -- | -- |
IH[2] | --[3] | --[3] | -- | -- | --[3] | --[3] |
[1] Эта строка показывает переходы, когда HandleType был SQL_HANDLE_ENV, SQL_HANDLE_DBC или SQL_HANDLE_DESC.
[2] Эта строка показывает переходы при SQL_HANDLE_STMT HandleType .
[3] SQLGetDiagField всегда возвращает ошибку в этом состоянии, когда DiagIdentifier SQL_DIAG_ROW_COUNT.
SQLGetEnvAttr
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetFunctions
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetInfo
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetStmtAttr
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | --[1] 24000[2] | --[1] 24000[2] | --[1] 24000[2] | См. следующую таблицу | HY010 | HY010 |
[1] Атрибут инструкции не был SQL_ATTR_ROW_NUMBER.
[2] Атрибут инструкции был SQL_ATTR_ROW_NUMBER.
SQLGetStmtAttr (состояния курсора)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
--[1] 24000[2] | --[1] или ([v] и [2]) 24000 [b] и [2] HY109 [i] и [2] | -- [i] или ([v] и [2]) 24000 [b] и [2] HY109[1] и [2] |
[1] Аргумент атрибута не был SQL_ATTR_ROW_NUMBER.
[2] Аргумент атрибута был SQL_ATTR_ROW_NUMBER.
SQLMoreResults
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
(IH) | --[1] | --[1] | -- [s] и [2] S1 [nf], [np], и [4] S2 [nf], [p], и [4] S5 [s] и [3] S11 [x] | S1 [nf], [np], [4] S3 [nf], [p] и [4] S4 [s] и [2] S5 [s] и [3] S11 [x] | HY010 | NS [c] HY010 [o] |
[1] Функция всегда возвращает SQL_NO_DATA в этом состоянии.
[2] Следующий результат — число строк.
[3] Следующий результат — результирующий набор.
[4] Текущий результат является последним результатом.
SQLNativeSql
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLNumParams
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | -- [s] S11 [x] | -- [s] S11 [x] | -- [s] S11 [x] | HY010 | NS [c] HY010 [o] |
SQLNumResultCols
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | -- [s] S11 [x] | -- [s] S11 [x] | -- [s] S11 [x] | HY010 | NS [c] HY010 [o] |
SQLParamData
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | HY010 | HY010 | См. следующую таблицу | NS [c] HY010 [o] |
SQLParamData (требуются состояния данных)
S8 Требуются данные |
S9 Необходимо поместить |
S10 Может положить |
---|---|---|
S1 [e] и [1] S2 [e], [nr], и [2] S3 [e], [r], и [2] S5 [e] и [4] S6 [e] и [5] S7 [e] и [3] S9 [d] S11 [x] | HY010 | S1 [e] и [1] S2 [e], [nr], и [2] S3 [e], [r], и [2] S4 [s], [nr], и ([1] или [2]) S5 [s], [r], и ([1] или [2]) S5 ([s] или [e]) и [4] S6 ([s] или [e]) и [5] S7 ([s] или [e]) и [3] S9 [d] [d] [x] |
[1] SQLExecDirect вернул SQL_NEED_DATA.
[2] SQLExecute вернулся SQL_NEED_DATA.
[3] SQLSetPos были вызваны из состояния S7 и возвращены SQL_NEED_DATA.
[4] SQLBulkOperations был вызван из состояния S5 и возвращен SQL_NEED_DATA.
[5] SQLSetPos или SQLBulkOperations были вызваны из состояния S6 и возвращены SQL_NEED_DATA.
SQLPrepare
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
(IH) | S2 [s] и [nr] S3 [s] и [r] S11 [x] | -- [s] или ([e] и [1]) S1 [e] и [2] S11 [x] | S1 [e] и [3] S2 [s], [nr], и [3] S3 [s], [r], и [3] S11 [x] и [3] 24000[4] | См. следующую таблицу | HY010 | NS [c] HY010 [o] |
[1] Подготовка завершается ошибкой, отличной от проверки инструкции (SQLSTATE было HY009 [Недопустимое значение аргумента] или HY090 [Недопустимая строка или длина буфера]).
[2] Подготовка завершается ошибкой при проверке инструкции (SQLSTATE не было HY009 [Недопустимое значение аргумента] или HY090 [Недопустимая строка или длина буфера]).
[3] Текущий результат является последним или единственным результатом, или нет текущих результатов. Дополнительные сведения о нескольких результатах см. в разделе "Несколько результатов".
[4] Текущий результат не является последним результатом.
SQLPrepare (состояния курсоров)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24000 | 24000 | 24000 |
SQLPutData
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | HY010 | HY010 | См. следующую таблицу | NS [c] HY010 [o] |
SQLPutData (требуются состояния данных)
S8 Требуются данные |
S9 Необходимо поместить |
S10 Может положить |
---|---|---|
HY010 | S1 [e] и [1] S2 [e], [nr], и [2] S3 [e], [r], и [2] S5 [e] и [4] S6 [e] и [5] S7 [e] и [3] S10 [s] S11 [x] | -- [s] S1 [e] и [1] S2 [e], [nr], и [2] S3 [e], [r], и [2] S5 [e] и [4] S6 [e] и [5] S7 [e] и [3] S11 [x] HY011[6] |
[1] SQLExecDirect вернул SQL_NEED_DATA.
[2] SQLExecute вернулся SQL_NEED_DATA.
[3] SQLSetPos были вызваны из состояния S7 и возвращены SQL_NEED_DATA.
[4] SQLBulkOperations был вызван из состояния S5 и возвращен SQL_NEED_DATA.
[5] SQLSetPos или SQLBulkOperations были вызваны из состояния S6 и возвращены SQL_NEED_DATA.
[6] Один или несколько вызовов SQLPutData для одного параметра, возвращенного SQL_SUCCESS, а затем вызов SQLPutData был выполнен для того же параметра с StrLen_or_Ind задано значение SQL_NULL_DATA.
SQLRowCount
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
(IH) | (HY010) | (HY010) | -- | -- | (HY010) | (HY010) |
SQLSetConnectAttr
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
--[1] | -- | -- | -- | --[2] 24000[3] | HY010 | HY010 |
[1] Эта строка показывает переходы, когда Атрибут был атрибутом подключения. Сведения о переходах, когда Атрибут был атрибутом инструкции, см. в таблице перехода инструкции для SQLSetStmtAttr.
[2] Аргумент атрибута не был SQL_ATTR_CURRENT_CATALOG.
[3] Аргумент атрибута был SQL_ATTR_CURRENT_CATALOG.
SQLSetCursorName
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | -- | -- | 24000 | 24000 | HY010 | HY010 |
SQLSetDescField и SQLSetDescRec
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH[1] | -- | -- | -- | -- | HY010 | HY010 |
[1] Эта строка показывает переходы, в которых аргумент DescriptorHandle является аргументом ARD, APD, IPD или (для SQLSetDescField), когда аргумент FieldIdentifier SQL_DESC_ARRAY_STATUS_PTR или SQL_DESC_ROWS_PROCESSED_PTR. Это ошибка вызова SQLSetDescField для IRD, если FieldIdentifier является любым другим значением.
SQLSetEnvAttr
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
HY011 | HY011 | HY011 | HY011 | Y011 | HY01 | HY011 |
функция SQLSetPos;
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24000 | См. следующую таблицу | HY010 | NS [c] HY010 [o] |
SQLSetPos (состояния курсора)
S5 Прочтено |
S6 SQLFetch или SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24000 | -- [s] S8 [d] S11 [x] 24000 [b] HY109 [i] | -- [s] S8 [d] S11 [x] 24000 [b] HY109 [i] |
SQLSetStmtAttr
S0 Не выделено |
S1 Распределено |
S2-S3 Подготовлено |
S4 Выполнен |
S5-S7 Курсор |
S8-S10 Требуются данные |
S11-S12 Асинхронная |
---|---|---|---|---|---|---|
IH | -- | --[1] HY011[2] | --[1] 24000[2] | --[1] 24000[2] | HY010 [np] или [1] HY011 [p] и [2] | HY010 [np] или [1] HY011 [p] и [2] |
[1] Аргумент атрибута не был SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, SQL_ATTR_USE_BOOKMARKS, SQL_ATTR_CURSOR_SCROLLABLE или SQL_ATTR_CURSOR_SENSITIVITY.
[2] Аргумент атрибута был SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, SQL_ATTR_USE_BOOKMARKS, SQL_ATTR_CURSOR_SCROLLABLE или SQL_ATTR_CURSOR_SENSITIVITY.