Compartilhar via


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.