Поделиться через


Переходы инструкций

Операторы 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.