Transições de instrução
As instruções ODBC têm os seguintes estados.
Estado | Descrição |
---|---|
S0 | Instrução não alocada. (O estado da conexão deve ser C4, C5 ou C6. Para obter mais informações, consulte Transições de conexão.) |
S1 | Instrução alocada. |
S2 | Instrução preparada. Nenhum conjunto de resultados será criado. |
S3 | Instrução preparada. Um conjunto de resultados (possivelmente vazio) será criado. |
S4 | Instrução executada e nenhum conjunto de resultados foi criado. |
S5 | Instrução executada e um conjunto de resultados (possivelmente vazio) foi criado. O cursor é aberto e posicionado antes da primeira linha do conjunto de resultados. |
S6 | Cursor posicionado com SQLFetch ou SQLFetchScroll. |
S7 | Cursor posicionado com SQLExtendedFetch. |
S8 | A função precisa de dados. SQLParamData não foi chamado. |
S9 | A função precisa de dados. SQLPutData não foi chamado. |
S10 | A função precisa de dados. SQLPutData foi chamado. |
S11 | Ainda em execução. Uma instrução é deixada nesse estado depois que uma função executada de forma assíncrona retorna SQL_STILL_EXECUTING. Uma instrução está temporariamente nesse estado enquanto qualquer função que aceita um identificador de instrução está em execução. A residência temporária no estado S11 não é mostrada em nenhuma tabela de estado, exceto na tabela de estado do SQLCancel. Embora uma instrução esteja temporariamente no estado S11, a função pode ser cancelada chamando SQLCancel de outro thread. |
S12 | Execução assíncrona cancelada. No S12, um aplicativo deve chamar a função cancelada até retornar um valor diferente de SQL_STILL_EXECUTING. A função só foi cancelada com êxito se a função retornar SQL_ERROR e SQLSTATE HY008 (Operação cancelada). Se retornar qualquer outro valor, como SQL_SUCCESS, a operação de cancelamento falhará e a função será executada normalmente. |
Os estados S2 e S3 são conhecidos como estados preparados, estados S5 a S7 como estados de cursor, estados S8 a S10 como os estados de dados de necessidade e estados S11 e S12 como os estados assíncronos. Em cada um desses grupos, as transições são mostradas separadamente somente quando são diferentes para cada estado no grupo; na maioria dos casos, as transições para cada estado em cada grupo são as mesmas.
As tabelas a seguir mostram como cada função ODBC afeta o estado da instrução.
SQLAllocHandle
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
--[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] Esta linha mostra transições quando HandleType foi SQL_HANDLE_ENV.
[2] Esta linha mostra transições quando HandleType foi SQL_HANDLE_DBC.
[3] Esta linha mostra transições quando HandleType foi SQL_HANDLE_STMT.
[4] Esta linha mostra transições quando HandleType foi SQL_HANDLE_DESC.
[5] Chamar SQLAllocHandle com OutputHandlePtr apontando para um identificador válido substitui que manipula sem considerar o conteúdo anterior para esse identificador e pode causar problemas para drivers ODBC. É uma programação de aplicativo ODBC incorreta para chamar SQLAllocHandle duas vezes com a mesma variável de aplicativo definida para *OutputHandlePtr sem chamar SQLFreeHandle para liberar o identificador antes de realocar. Substituir identificadores ODBC dessa maneira pode levar a comportamentos inconsistentes ou erros por parte dos drivers ODBC.
SQLBindCol
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | HY010 | HY010 |
SQLBindParameter
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | HY010 | HY010 |
SQLBrowseConnect, SQLConnect e SQLDriverConnect
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
08002 | 08002 | 08002 | 08002 | 08002 | 08002 | 08002 |
SQLBulkOperations
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24.000 | Confira a próxima tabela | HY010 | NS [c] HY010 o |
SQLBulkOperations (estados de cursor)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
-- [s] S8 [d] S11 [x] | -- [s] S8 [d] S11 [x] | HY010 |
SQLCancel
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | S1[1] S2 [nr] e [2] S3 [r]e [2] S5[3] e [5] S6([3] ou [4]) e [6] S7[4] e [7] | Confira a próxima tabela |
[1] SQLExecDirect retornou SQL_NEED_DATA.
[2] SQLExecute retornou SQL_NEED_DATA.
[3] SQLBulkOperations retornou SQL_NEED_DATA.
[4] SQLSetPos retornou SQL_NEED_DATA.
[5] SQLFetch, SQLFetchScroll ou SQLExtendedFetch não foram chamados.
[6] SQLFetch ou SQLFetchScroll foram chamados.
[7] SQLExtendedFetch foi chamado.
SQLCancel (Estados Assíncronos)
S11 Ainda em execução |
S12 Assíncrono cancelado |
---|---|
NS[1] S12[2] | S12 |
[1] A instrução estava temporariamente no estado S11 enquanto uma função estava em execução. SQLCancel foi chamado de um thread diferente.
[2] A instrução estava no estado S11 porque uma função chamada SQL_STILL_EXECUTING retornada de forma assíncrona.
SQLCloseCursor
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | 24.000 | 24.000 | 24.000 | S1 [np] S3 [p] | HY010 | HY010 |
SQLColAttribute
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | Confira a próxima tabela | 24.000 | -- [s] S11 [x] | HY010 | NS [c] HY010 o |
SQLColAttribute (Estados preparados)
S2 Nenhum Resultado |
S3 Resultados |
---|---|
--[1] 07005[2] | -- [s] S11 x |
[1] FieldIdentifier foi SQL_DESC_COUNT.
[2] FieldIdentifier não foi SQL_DESC_COUNT.
SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges e SQLTables
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | S5 [s] S11 [x] | S1 [e] S5 [s] S11 [x] | S1 [e] e [1] S5 [s] e [1] S11 [x] e [1] 24000[2] | Confira a próxima tabela | HY010 | NS [c] HY010 o |
[1] O resultado atual é o último ou único resultado ou não há resultados atuais. Para obter mais informações sobre vários resultados, consulte Vários resultados.
[2] O resultado atual não é o último resultado.
SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges e SQLTables (Cursor States)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24.000 | 24000[1] | 24.000 |
[1] Esse erro será retornado pelo Gerenciador de Driver se SQLFetch ou SQLFetchScroll não tiver retornado SQL_NO_DATA e for retornado pelo driver se SQLFetch ou SQLFetchScroll tiver retornado SQL_NO_DATA.
SQLCopyDesc
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH[1] | -- | -- | -- | -- | HY010 | NS [c] e [3] HY010 [o] ou [4] |
IH[2] | HY010 | Confira a próxima tabela | 24.000 | -- [s] S11 x | HY010 | NS [c] e [3] HY010 [o] ou [4] |
[1] Essa linha mostra transições quando o argumento SourceDescHandle era um ARD, APD ou IPD.
[2] Essa linha mostra transições quando o argumento SourceDescHandle era um IRD.
[3] Os argumentos SourceDescHandle e TargetDescHandle eram os mesmos da função SQLCopyDesc que está sendo executada de forma assíncrona.
[4] O argumento SourceDescHandle ou o argumento TargetDescHandle (ou ambos) eram diferentes da função SQLCopyDesc que está sendo executada de forma assíncrona.
SQLCopyDesc (Estados preparados)
S2 Sem resultados |
S3 Resultados |
---|---|
24000[1] | -- [s] S11 [x] |
[1] Essa linha mostra transições quando o argumento SourceDescHandle era um IRD.
SQLDataSources e SQLDrivers
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLDescribeCol
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | Confira a próxima tabela | 24.000 | -- [s] S11 [x] | HY010 | NS [c] HY010 o |
SQLDescribeCol (Estados Preparados)
S2 Sem resultados |
S3 Resultados |
---|---|
07005 | -- [s] S11 [x] |
SQLDescribeParam
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | -- [s] S11 [x] | HY010 | HY010 | HY010 | NS [c] HY010 [o] |
Sqldisconnect
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1] | S0[1] | S0[1] | S0[1] | S0[1] | (HY010) | (HY010) |
[1] Chamar SQLDisconnect libera todas as instruções associadas à conexão. Além disso, isso retorna o estado de conexão para C2; o estado de conexão deve ser C4 antes que o estado da instrução seja S0.
SQLEndTran
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | --[2] ou [3] S1[1] | --[3] S1 [np] e ([1] ou [2]) S1 [p] e [1] S2 [p] e [2] | --[3] S1 [np] e ([1] ou [2]) S1 [p] e [1] S3 [p] e [2] | (HY010) | (HY010) |
[1] O argumento CompletionType é SQL_COMMIT e SQLGetInfo retorna SQL_CB_DELETE para o tipo de informações SQL_CURSOR_COMMIT_BEHAVIOR ou o argumento CompletionType é SQL_ROLLBACK e SQLGetInfo retorna SQL_CB_DELETE para o tipo de informações SQL_CURSOR_ROLLBACK_BEHAVIOR.
[2] O argumento CompletionType é SQL_COMMIT e SQLGetInfo retorna SQL_CB_CLOSE para o tipo de informações SQL_CURSOR_COMMIT_BEHAVIOR ou o argumento CompletionType é SQL_ROLLBACK e SQLGetInfo retorna SQL_CB_CLOSE para o tipo de informações SQL_CURSOR_ROLLBACK_BEHAVIOR.
[3] O argumento CompletionType é SQL_COMMIT e SQLGetInfo retorna SQL_CB_PRESERVE para o tipo de informações SQL_CURSOR_COMMIT_BEHAVIOR ou o argumento CompletionType é SQL_ROLLBACK e SQLGetInfo retorna SQL_CB_PRESERVE para o tipo de informações SQL_CURSOR_ROLLBACK_BEHAVIOR.
SQLExecDirect
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | S4 [s] e [nr] S5 [s] e [r] S8 [d] S11 [x] | -- [e] e [1] S1 [e] e [2] S4 [s] e [nr] S5 [s] e [r] S8 [d] S11 [x] | -- [e], [1], e [3] S1 [e], [2], e [3] S4 [s], [nr], e [3] S5 [s], [r], e [3] S8 [d] e [3] S11 [x] e [3] 24000 [4] | Confira a próxima tabela | HY010 | NS [c] HY010 [o] |
[1] O erro foi retornado pelo Gerenciador de Driver.
[2] O erro não foi retornado pelo Gerenciador de Driver.
[3] O resultado atual é o último ou único resultado ou não há resultados atuais. Para obter mais informações sobre vários resultados, consulte Vários resultados.
[4] O resultado atual não é o último resultado.
SQLExecDirect (Estados do cursor)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24.000 | 24000 [1] | 24.000 |
[1] Esse erro será retornado pelo Gerenciador de Driver se SQLFetch ou SQLFetchScroll não tiver retornado SQL_NO_DATA e for retornado pelo driver se SQLFetch ou SQLFetchScroll tiver retornado SQL_NO_DATA.
SQLExecute
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | (HY010) | Confira a próxima tabela | S2 [e], p, and [1] S4 [s], [p], [nr], and [1] S5 [s], [p], [r], and [1] S8 [d], [p], and [1] S11 [x], [p], and [1] 24000 [p] and [2] HY010 [np] | Ver a tabela de estados do cursor | HY010 | NS [c] HY010 [o] |
[1] O resultado atual é o último ou único resultado ou não há resultados atuais. Para obter mais informações sobre vários resultados, consulte Vários resultados.
[2] O resultado atual não é o último resultado.
SQLExecute (Estados preparados)
S2 Nenhum Resultado |
S3 Resultados |
---|---|
S4 [s] S8 [d] S11 [x] | S5 [s] S8 [d] S11 [x] |
SQLExecute (estados de cursor)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24000 [p] HY010 [np] | 24000 [p], [1] HY010 [np] | 24000 [p] HY010 [np] |
[1] Esse erro será retornado pelo Gerenciador de Driver se SQLFetch ou SQLFetchScroll não tiver retornado SQL_NO_DATA e for retornado pelo driver se SQLFetch ou SQLFetchScroll tiver retornado SQL_NO_DATA.
Sqlextendedfetch
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | S1010 | S1010 | 24.000 | Confira a próxima tabela | S1010 | NS [c] S1010 [o] |
SQLExtendedFetch (Estados do cursor)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
S7 [s] ou [nf] S11 [x] | S1010 | -- [s] ou [nf] S11 [x] |
SQLFetch e SQLFetchScroll
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24.000 | Confira a próxima tabela | HY010 | NS [c] HY010 [o] |
SQLFetch e SQLFetchScroll (estados do cursor)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
S6 [s] ou [nf] S11 [x] | -- [s] ou [nf] S11 [x] | HY010 |
SQLFreeHandle
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
-- [1] | HY010 | HY010 | HY010 | HY010 | HY010 | HY010 |
IH [2] | S0 | S0 | S0 | S0 | HY010 | HY010 |
-- [3] | -- | -- | -- | -- | -- | -- |
[1] Esta linha mostra transições quando HandleType foi SQL_HANDLE_ENV ou SQL_HANDLE_DBC.
[2] Esta linha mostra transições quando HandleType foi SQL_HANDLE_STMT.
[3] Essa linha mostra transições quando HandleType foi SQL_HANDLE_DESC e o descritor foi alocado explicitamente.
SQLFreeStmt
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH [1] | -- | -- | S1 [np] S2 [p] | S1 [np] S3 [p] | HY010 | HY010 |
IH [2] | -- | -- | -- | -- | HY010 | HY010 |
[1] Esta linha mostra transições quando Option foi SQL_CLOSE.
[2] Esta linha mostra transições quando Option foi SQL_UNBIND ou SQL_RESET_PARAMS. Se o argumento Option foi SQL_DROP e o driver subjacente é um driver ODBC 3*.x*, o Gerenciador de Driver mapeia isso para uma chamada para SQLFreeHandle com HandleType definido como SQL_HANDLE_STMT. Para obter mais informações, consulte a tabela de transição para SQLFreeHandle.
SQLGetConnectAttr
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetCursorName
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | HY010 | HY010 |
SQLGetData
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24.000 | Confira a próxima tabela | HY010 | NS [c] HY010 [o] |
SQLGetData (estados de cursor)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24.000 | -- [s] ou [nf] S11 [x] 24000 [b] HY109 [i] | -- [s] ou [nf] S11 [x] 24000 [b] HY109 [i] |
SQLGetDescField e SQLGetDescRec
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- [1] ou [2] HY010 [3] | Confira a próxima tabela | -- [1] ou [2] 24000 [3] | -- [1], [2], ou [3] S11 [3] e [x] | HY010 | NS [c] ou [4] HY010 [o] e [5] |
[1] O argumento DescriptorHandle era um APD ou ARD.
[2] O argumento DescriptorHandle era um IPD.
[3] O argumento DescriptorHandle era um IRD.
[4] O argumento DescriptorHandle era o mesmo que o argumento DescriptorHandle na função SQLGetDescField ou SQLGetDescRec que está sendo executada de forma assíncrona.
[5] O argumento DescriptorHandle era diferente do argumento DescriptorHandle na função SQLGetDescField ou SQLGetDescRec que está sendo executada de forma assíncrona.
SQLGetDescField e SQLGetDescRec (Estados preparados)
S2 Sem resultados |
S3 Resultados |
---|---|
--[1], [2], ou [3] S11[2] e [x] | --[1], [2], ou [3] S11 [x] |
[1] O argumento DescriptorHandle era um APD ou ARD.
[2] O argumento DescriptorHandle era um IPD.
[3] O argumento DescriptorHandle era um IRD. Observe que essas funções sempre retornam SQL_NO_DATA no estado S2 quando DescriptorHandle era um IRD.
SQLGetDiagField e SQLGetDiagRec
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1] | -- | -- | -- | -- | -- | -- |
IH[2] | --[3] | --[3] | -- | -- | --[3] | --[3] |
[1] Essa linha mostra transições quando HandleType foi SQL_HANDLE_ENV, SQL_HANDLE_DBC ou SQL_HANDLE_DESC.
[2] Essa linha mostra transições quando HandleType foi SQL_HANDLE_STMT.
[3] SQLGetDiagField sempre retorna um erro nesse estado quando DiagIdentifier é SQL_DIAG_ROW_COUNT.
SQLGetEnvAttr
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetFunctions
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetInfo
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetStmtAttr
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | --[1] 24000[2] | --[1] 24000[2] | --[1] 24000[2] | Confira a próxima tabela | HY010 | HY010 |
[1] O atributo de instrução não foi SQL_ATTR_ROW_NUMBER.
[2] O atributo de instrução foi SQL_ATTR_ROW_NUMBER.
SQLGetStmtAttr (Estados do Cursor)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
--[1] 24000[2] | --[1] ou ([v] e [2]) 24000 [b] e [2] HY109 [i] e [2] | -- [i] ou ([v] e [2]) 24000 [b] e [2] HY109[1] e [2] |
[1] O argumento Attribute não foi SQL_ATTR_ROW_NUMBER.
[2] O argumento Attribute foi SQL_ATTR_ROW_NUMBER.
SQLMoreResults
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | --[1] | --[1] | -- [s] e [2] S1 [nf], [np], e [4] S2 [nf], [p], e [4] S5 [s] e [3] S11 [x] | S1 [nf], [np], e [4] S3 [nf], [p] e [4] S4 [s] e [2] S5 [s] e [3] S11 [x] | HY010 | NS [c] HY010 [o] |
[1] A função sempre retorna SQL_NO_DATA nesse estado.
[2] O próximo resultado é uma contagem de linhas.
[3] O próximo resultado é um conjunto de resultados.
[4] O resultado atual é o último resultado.
SQLNativeSql
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLNumParams
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | -- [s] S11 [x] | -- [s] S11 [x] | -- [s] S11 [x] | HY010 | NS [c] HY010 [o] |
SQLNumResultCols
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | -- [s] S11 [x] | -- [s] S11 [x] | -- [s] S11 [x] | HY010 | NS [c] HY010 [o] |
SQLParamData
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | HY010 | HY010 | Confira a próxima tabela | NS [c] HY010 [o] |
SQLParamData (precisa de estados de dados)
S8 Precisa de dados |
S9 Deve colocar |
S10 Pode Colocar |
---|---|---|
S1 [e] e [1] S2 [e], [nr], e [2] S3 [e], [r], e [2] S5 [e] e [4] S6 [e] e [5] S7 [e] e [3] S9 [d] S11 [x] | HY010 | S1 [e] e [1] S2 [e], [nr], e [2] S3 [e], [r], e [2] S4 [s], [nr], and ([1] or [2]) S5 [s], [r], and ([1] or [2]) S5 ([s] or [e]) and [4] S6 ([s] or [e]) and [5] S7 ([s] or [e]) and [3] S9 [d] S11 [x] |
[1] SQLExecDirect retornou SQL_NEED_DATA.
[2] SQLExecute retornou SQL_NEED_DATA.
[3] SQLSetPos foi chamado do estado S7 e retornou SQL_NEED_DATA.
[4] SQLBulkOperations foi chamado do estado S5 e retornado SQL_NEED_DATA.
[5] SQLSetPos ou SQLBulkOperations foram chamados do estado S6 e retornados SQL_NEED_DATA.
SQLPrepare
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | S2 [s] e [nr] S3 [s] e [r] S11 [x] | -- [s] ou ([e] e [1]) S1 [e] e [2] S11 [x] | S1 [e] e [3] S2 [s], [nr], e [3] S3 [s], [r], e [3] S11 [x] e [3] 24000[4] | Confira a próxima tabela | HY010 | NS [c] HY010 [o] |
[1] A preparação falha por um motivo diferente de validar a instrução (o SQLSTATE era HY009 [valor de argumento inválido] ou HY090 [comprimento de buffer ou cadeia de caracteres inválida]).
[2] A preparação falha ao validar a instrução (o SQLSTATE não era HY009 [valor de argumento inválido] ou HY090 [comprimento de buffer ou cadeia de caracteres inválida]).
[3] O resultado atual é o último ou único resultado ou não há resultados atuais. Para obter mais informações sobre vários resultados, consulte Vários resultados.
[4] O resultado atual não é o último resultado.
SQLPrepare (Estados de Cursor)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24.000 | 24.000 | 24.000 |
SQLPutData
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | HY010 | HY010 | Confira a próxima tabela | NS [c] HY010 [o] |
SQLPutData (precisa de estados de dados)
S8 Precisa de dados |
S9 Deve colocar |
S10 Pode Colocar |
---|---|---|
HY010 | S1 [e] e [1] S2 [e], [nr], e [2] S3 [e], [r], e [2] S5 [e] e [4] S6 [e] e [5] S7 [e] e [3] S10 [s] S11 [x] | -- [s] S1 [e] e [1] S2 [e], [nr], e [2] S3 [e], [r], e [2] S5 [e] e [4] S6 [e] e [5] S7 [e] e [3] S11 [x] HY011[6] |
[1] SQLExecDirect retornou SQL_NEED_DATA.
[2] SQLExecute retornou SQL_NEED_DATA.
[3] SQLSetPos foi chamado do estado S7 e retornou SQL_NEED_DATA.
[4] SQLBulkOperations foi chamado do estado S5 e retornou SQL_NEED_DATA.
[5] SQLSetPos ou SQLBulkOperations foram chamados do estado S6 e retornados SQL_NEED_DATA.
[6] Uma ou mais chamadas para SQLPutData para um único parâmetro retornado SQL_SUCCESS e, em seguida, uma chamada para SQLPutData foi feita para o mesmo parâmetro com StrLen_or_Ind definido como SQL_NULL_DATA.
SQLRowCount
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | (HY010) | (HY010) | -- | -- | (HY010) | (HY010) |
SQLSetConnectAttr
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1] | -- | -- | -- | --[2] 24000[3] | HY010 | HY010 |
[1] Esta linha mostra transições quando Attribute era um atributo de conexão. Para transições quando Attribute era um atributo de instrução, consulte a tabela de transição de instrução para SQLSetStmtAttr.
[2] O argumento Attribute não foi SQL_ATTR_CURRENT_CATALOG.
[3] O argumento Attribute foi SQL_ATTR_CURRENT_CATALOG.
Sqlsetcursorname
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | 24.000 | 24.000 | HY010 | HY010 |
SQLSetDescField e SQLSetDescRec
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH[1] | -- | -- | -- | -- | HY010 | HY010 |
[1] Esta linha mostra transições em que o argumento DescriptorHandle é um ARD, APD, IPD ou (para SQLSetDescField) um IRD quando o argumento FieldIdentifier é SQL_DESC_ARRAY_STATUS_PTR ou SQL_DESC_ROWS_PROCESSED_PTR. É um erro chamar SQLSetDescField para um IRD quando FieldIdentifier for qualquer outro valor.
SQLSetEnvAttr
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
HY011 | HY011 | HY011 | HY011 | Y011 | HY01 | HY011 |
SQLSetPos
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24.000 | Confira a próxima tabela | HY010 | NS [c] HY010 [o] |
SQLSetPos (estados de cursor)
S5 Aberto |
S6 SQLFetch ou SQLFetchScroll |
S7 Sqlextendedfetch |
---|---|---|
24.000 | -- [s] S8 [d] S11 [x] 24000 [b] HY109 [i] | -- [s] S8 [d] S11 [x] 24000 [b] HY109 [i] |
SQLSetStmtAttr
S0 Não alocado |
S1 Alocado |
S2-S3 Prepared |
S4 Executado |
S5-S7 Cursor |
S8-S10 Precisa de dados |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | --[1] HY011[2] | --[1] 24000[2] | --[1] 24000[2] | HY010 [np] ou [1] HY011 [p] e [2] | HY010 [np] ou [1] HY011 [p] e [2] |
[1] O argumento Attribute não foi SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, SQL_ATTR_USE_BOOKMARKS, SQL_ATTR_CURSOR_SCROLLABLE ou SQL_ATTR_CURSOR_SENSITIVITY.
[2] O argumento Attribute foi SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, SQL_ATTR_USE_BOOKMARKS, SQL_ATTR_CURSOR_SCROLLABLE ou SQL_ATTR_CURSOR_SENSITIVITY.