Partager via


Transitions d’instruction

Les instructions ODBC ont les états suivants.

State Description
S0 Instruction non allouée. (L’état de connexion doit être C4, C5 ou C6. Pour plus d’informations, consultez Transitions de connexion.)
S1 Instruction allouée.
S2 Instruction préparée. Aucun jeu de résultats n’est créé.
S3 Instruction préparée. Un jeu de résultats (éventuellement vide) sera créé.
S4 Instruction exécutée et aucun jeu de résultats n’a été créé.
S5 Instruction exécutée et un jeu de résultats (éventuellement vide) a été créé. Le curseur est ouvert et positionné avant la première ligne du jeu de résultats.
S6 Curseur positionné avec SQLFetch ou SQLFetchScroll.
S7 Curseur positionné avec SQLExtendedFetch.
S8 La fonction a besoin de données. SQLParamData n’a pas été appelé.
S9 La fonction a besoin de données. SQLPutData n’a pas été appelé.
S10 La fonction a besoin de données. SQLPutData a été appelé.
S11 Toujours en cours d’exécution. Une instruction est laissée dans cet état après qu’une fonction exécutée retourne de manière asynchrone SQL_STILL_EXECUTING. Une instruction est temporairement dans cet état pendant que toute fonction qui accepte un handle d’instruction est en cours d’exécution. La résidence temporaire dans l’état S11 n’est pas indiquée dans les tables d’état, à l’exception de la table d’état pour SQLCancel. Alors qu’une instruction est temporairement à l’état S11, la fonction peut être annulée en appelant SQLCancel à partir d’un autre thread.
S12 Exécution asynchrone annulée. Dans S12, une application doit appeler la fonction annulée jusqu’à ce qu’elle retourne une valeur autre que SQL_STILL_EXECUTING. La fonction a été annulée avec succès uniquement si la fonction retourne SQL_ERROR et SQLSTATE HY008 (Opération annulée). S’il retourne une autre valeur, telle que SQL_SUCCESS, l’opération d’annulation a échoué et la fonction s’est exécutée normalement.

Les états S2 et S3 sont appelés états préparés, états S5 à S7 comme états de curseur, états S8 à S10 comme états de données nécessaires et états S11 et S12 comme états asynchrones. Dans chacun de ces groupes, les transitions sont affichées séparément uniquement lorsqu’elles sont différentes pour chaque état du groupe ; dans la plupart des cas, les transitions pour chaque état d’un groupe sont les mêmes.

Les tableaux suivants montrent comment chaque fonction ODBC affecte l’état de l’instruction.

SQLAllocHandle

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
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] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_ENV.

[2] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DBC.

[3] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_STMT.

[4] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DESC.

[5] L’appel de SQLAllocHandle avec OutputHandlePtr pointant vers un handle valide remplace celui-ci sans tenir compte du contenu précédent et peut entraîner des problèmes pour les pilotes ODBC. La programmation d’application ODBC est incorrecte pour appeler SQLAllocHandle deux fois avec la même variable d’application définie pour *OutputHandlePtr sans appeler SQLFreeHandle pour libérer le handle avant de le réallouer. Le remplacement des handles ODBC de cette manière peut entraîner un comportement incohérent ou des erreurs de la part des pilotes ODBC.

SQLBindCol

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH -- -- -- -- HY010 HY010

SQLBindParameter

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH -- -- -- -- HY010 HY010

SQLBrowseConnect, SQLConnect et SQLDriverConnect

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
08002 08002 08002 08002 08002 08002 08002

SQLBulkOperations

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH HY010 HY010 24 000 Voir le tableau suivant HY010 NS [c] HY010 o

SQLBulkOperations (États du curseur)

S5

Ouvert
S6

SQLFetch ou SQLFetchScroll
S7

SQLExtendedFetch
-- [s] S8 [d] S11 [x] -- [s] S8 [d] S11 [x] HY010

SQLCancel

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
IH -- -- -- -- S1[1] S2 [nr] et [2] S3 [r]and [2] S5[3] et [5] S6([3] or [4]) et [6] S7[4] et [7] Voir le tableau suivant

[1] SQLExecDirect a retourné SQL_NEED_DATA.

[2] SQLExecute a retourné SQL_NEED_DATA.

[3] SQLBulkOperations a retourné SQL_NEED_DATA.

[4] SQLSetPos a retourné SQL_NEED_DATA.

[5] SQLFetch, SQLFetchScroll ou SQLExtendedFetch n’avaient pas été appelés.

[6] SQLFetch ou SQLFetchScroll avait été appelé.

[7] SQLExtendedFetch avait été appelé.

SQLCancel (États asynchrones)

S11

Toujours en cours d’exécution
S12

Asynch annulée
NS[1] S12[2] S12

[1] L’instruction était temporairement à l’état S11 pendant l’exécution d’une fonction. SQLCancel a été appelé à partir d’un thread différent.

[2] L’instruction était à l’état S11, car une fonction appelée a retourné de manière asynchrone SQL_STILL_EXECUTING.

SQLCloseCursor

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
IH 24 000 24 000 24 000 S1 [np] S3 [p] HY010 HY010

SQLColAttribute

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
IH HY010 Voir le tableau suivant 24 000 -- [s] S11 [x] HY010 NS [c] HY010 o

SQLColAttribute (États préparés)

S2

Aucun résultat
S3

Résultats
--[1] 07005[2] -- [s] S11 x

[1] FieldIdentifier a été SQL_DESC_COUNT.

[2] FieldIdentifier n’a pas été SQL_DESC_COUNT.

SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges et SQLTables

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
(IH) S5 [s] S11 [x] S1 [e] S5 [s] S11 [x] S1 [e] et [1] S5 [s] et [1] S11 [x] et [1] 24000[2] Voir le tableau suivant HY010 NS [c] HY010 o

[1] Le résultat actuel est le dernier ou le seul résultat, ou il n’y a aucun résultat actuel. Pour plus d’informations sur plusieurs résultats, consultez Résultats multiples.

[2] Le résultat actuel n’est pas le dernier résultat.

SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges et SQLTables (Cursor States)

S5

Ouvert
S6

SQLFetch ou SQLFetchScroll
S7

SQLExtendedFetch
24 000 24000[1] 24 000

[1] Cette erreur est retournée par le Gestionnaire de pilotes si SQLFetch ou SQLFetchScroll n’a pas retourné SQL_NO_DATA et est retournée par le pilote si SQLFetch ou SQLFetchScroll a retourné SQL_NO_DATA.

SQLCopyDesc

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
IH[1] -- -- -- -- HY010 NS [c] et [3] HY010 [o] ou [4]
IH[2] HY010 Voir le tableau suivant 24 000 -- [s] S11 x HY010 NS [c] et [3] HY010 [o] ou [4]

[1] Cette ligne montre les transitions lorsque l’argument SourceDescHandle était un ARD, APD ou IPD.

[2] Cette ligne montre les transitions lorsque l’argument SourceDescHandle était un IRD.

[3] Les arguments SourceDescHandle et TargetDescHandle étaient les mêmes que dans la fonction SQLCopyDesc qui s’exécute de façon asynchrone.

[4] L’argument SourceDescHandle ou l’argument TargetDescHandle (ou les deux) étaient différents de ceux de la fonction SQLCopyDesc qui s’exécute de manière asynchrone.

SQLCopyDesc (États préparés)

S2

Aucun résultat
S3

Résultats
24000[1] -- [s] S11 [x]

[1] Cette ligne montre les transitions lorsque l’argument SourceDescHandle était un IRD.

SQLDataSources et SQLDrivers

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
-- -- -- -- -- -- --

SQLDescribeCol

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
IH HY010 Voir le tableau suivant 24 000 -- [s] S11 [x] HY010 NS [c] HY010 o

SQLDescribeCol (États préparés)

S2

Aucun résultat
S3

Résultats
07005 -- [s] S11 [x]

SQLDescribeParam

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
IH HY010 -- [s] S11 [x] HY010 HY010 HY010 NS [c] HY010 [o]

SQLDisconnect

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
--[1] S0[1] S0[1] S0[1] S0[1] (HY010) (HY010)

[1] L’appel de SQLDisconnect libère toutes les instructions associées à la connexion. En outre, cela retourne l’état de connexion à C2 ; L’état de connexion doit être C4 avant que l’état de l’instruction soit S0.

SQLEndTran

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
-- -- --[2] ou [3] S1[1] --[3] S1 [np] et ([1] ou [2]) S1 [p] et [1] S2 [p] et [2] --[3] S1 [np] et ([1] ou [2]) S1 [p] et [1] S3 [p] et [2] (HY010) (HY010)

[1] L’argument CompletionType est SQL_COMMIT et SQLGetInfo retourne SQL_CB_DELETE pour le type d’informations SQL_CURSOR_COMMIT_BEHAVIOR, ou l’argument CompletionType est SQL_ROLLBACK et SQLGetInfo retourne SQL_CB_DELETE pour le type d’informations SQL_CURSOR_ROLLBACK_BEHAVIOR.

[2] L’argument CompletionType est SQL_COMMIT et SQLGetInfo retourne SQL_CB_CLOSE pour le type d’informations SQL_CURSOR_COMMIT_BEHAVIOR, ou l’argument CompletionType est SQL_ROLLBACK et SQLGetInfo retourne SQL_CB_CLOSE pour le type d’informations SQL_CURSOR_ROLLBACK_BEHAVIOR.

[3] L’argument CompletionType est SQL_COMMIT et SQLGetInfo retourne SQL_CB_PRESERVE pour le type d’informations SQL_CURSOR_COMMIT_BEHAVIOR, ou l’argument CompletionType est SQL_ROLLBACK et SQLGetInfo retourne SQL_CB_PRESERVE pour le type d’informations SQL_CURSOR_ROLLBACK_BEHAVIOR.

SQLExecDirect

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
(IH) S4 [s] et [nr] S5 [s] et [r] S8 [d] S11 [x] -- [e] and [1] S1 [e] and [2] S4 [s] and [nr] S5 [s] and [r] S8 [d] S11 [x] -- [e], [1], et [3] S1 [e], [2] et [3] S4 [s], [nr] et [3] S5 [s], [r], et [3] S8 [d] et [3] S11 [x] et [3] 24000 [4] Voir le tableau suivant HY010 NS [c] HY010 [o]

[1] L’erreur a été retournée par le gestionnaire de pilotes.

[2] L’erreur n’a pas été retournée par le Gestionnaire de pilotes.

[3] Le résultat actuel est le dernier ou le seul résultat, ou il n’y a aucun résultat actuel. Pour plus d’informations sur plusieurs résultats, consultez Résultats multiples.

[4] Le résultat actuel n’est pas le dernier résultat.

SQLExecDirect (États du curseur)

S5

Ouvert
S6

SQLFetch ou SQLFetchScroll
S7

SQLExtendedFetch
24 000 24000 [1] 24 000

[1] Cette erreur est retournée par le Gestionnaire de pilotes si SQLFetch ou SQLFetchScroll n’a pas retourné SQL_NO_DATA, et est retournée par le pilote si SQLFetch ou SQLFetchScroll a retourné SQL_NO_DATA.

SQLExecute

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
(IH) (HY010) Voir le tableau suivant S2 [e], p, et [1] S4 [s], [p], [nr], et [1] S5 [s], [p], [r], et [1] S8 [d], [p] et [1] S11 [x], [p] et [1] 24000 [p] et [2] HY010 [np] Voir le tableau des états du curseur HY010 NS [c] HY010 [o]

[1] Le résultat actuel est le dernier ou le seul résultat, ou il n’existe aucun résultat actuel. Pour plus d’informations sur plusieurs résultats, consultez Résultats multiples.

[2] Le résultat actuel n’est pas le dernier résultat.

SQLExecute (États préparés)

S2

Aucun résultat
S3

Résultats
S4 [s] S8 [d] S11 [x] S5 [s] S8 [d] S11 [x]

SQLExecute (États du curseur)

S5

Ouvert
S6

SQLFetch ou SQLFetchScroll
S7

SQLExtendedFetch
24000 [p] HY010 [np] 24000 [p], [1] HY010 [np] 24000 [p] HY010 [np]

[1] Cette erreur est retournée par le Gestionnaire de pilotes si SQLFetch ou SQLFetchScroll n’a pas retourné SQL_NO_DATA, et est retournée par le pilote si SQLFetch ou SQLFetchScroll a retourné SQL_NO_DATA.

SQLExtendedFetch

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH S1010 S1010 24 000 Voir le tableau suivant S1010 NS [c] S1010 [o]

SQLExtendedFetch (États du curseur)

S5

Ouvert
S6

SQLFetch ou SQLFetchScroll
S7

SQLExtendedFetch
S7 [s] ou [nf] S11 [x] S1010 -- [s] ou [nf] S11 [x]

SQLFetch et SQLFetchScroll

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH HY010 HY010 24 000 Voir le tableau suivant HY010 NS [c] HY010 [o]

SQLFetch et SQLFetchScroll (états du curseur)

S5

Ouvert
S6

SQLFetch ou SQLFetchScroll
S7

SQLExtendedFetch
S6 [s] ou [nf] S11 [x] -- [s] ou [nf] S11 [x] HY010

SQLFreeHandle

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
-- [1] HY010 HY010 HY010 HY010 HY010 HY010
IH [2] S0 S0 S0 S0 HY010 HY010
-- [3] -- -- -- -- -- --

[1] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_ENV ou SQL_HANDLE_DBC.

[2] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_STMT.

[3] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_DESC et que le descripteur a été explicitement alloué.

SQLFreeStmt

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH [1] -- -- S1 [np] S2 [p] S1 [np] S3 [p] HY010 HY010
IH [2] -- -- -- -- HY010 HY010

[1] Cette ligne montre les transitions lorsque Option a été SQL_CLOSE.

[2] Cette ligne affiche les transitions lorsque Option a été SQL_UNBIND ou SQL_RESET_PARAMS. Si l’argument Option a été SQL_DROP et que le pilote sous-jacent est un pilote ODBC 3*.x*, le Gestionnaire de pilotes le mappe à un appel à SQLFreeHandle avec HandleType défini sur SQL_HANDLE_STMT. Pour plus d’informations, consultez la table de transition pour SQLFreeHandle.

SQLGetConnectAttr

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
-- -- -- -- -- -- --

SQLGetCursorName

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH -- -- -- -- HY010 HY010

SQLGetData

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH HY010 HY010 24 000 Voir le tableau suivant HY010 NS [c] HY010 [o]

SQLGetData (États du curseur)

S5

Ouvert
S6

SQLFetch ou SQLFetchScroll
S7

SQLExtendedFetch
24 000 -- [s] or [nf] S11 [x] 24000 [b] HY109 [i] -- [s] or [nf] S11 [x] 24000 [b] HY109 [i]

SQLGetDescField et SQLGetDescRec

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH -- [1] ou [2] HY010 [3] Voir le tableau suivant -- [1] ou [2] 24000 [3] -- [1], [2], ou [3] S11 [3] et [x] HY010 NS [c] ou [4] HY010 [o] et [5]

[1] L’argument DescriptorHandle était un APD ou un ARD.

[2] L’argument DescriptorHandle était un IPD.

[3] L’argument DescriptorHandle était un IRD.

[4] L’argument DescriptorHandle était identique à l’argument DescriptorHandle dans la fonction SQLGetDescField ou SQLGetDescRec qui s’exécute de manière asynchrone.

[5] L’argument DescriptorHandle était différent de l’argument DescriptorHandle dans la fonction SQLGetDescField ou SQLGetDescRec qui s’exécute de manière asynchrone.

SQLGetDescField et SQLGetDescRec (États préparés)

S2

Aucun résultat
S3

Résultats
--[1], [2], ou [3] S11[2] et [x] --[1], [2] ou [3] S11 [x]

[1] L’argument DescriptorHandle était un APD ou un ARD.

[2] L’argument DescriptorHandle était un IPD.

[3] L’argument DescriptorHandle était un IRD. Notez que ces fonctions retournent toujours SQL_NO_DATA à l’état S2 lorsque DescriptorHandle était un IRD.

SQLGetDiagField et SQLGetDiagRec

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
--[1] -- -- -- -- -- --
IH[2] --[3] --[3] -- -- --[3] --[3]

[1] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_ENV, SQL_HANDLE_DBC ou SQL_HANDLE_DESC.

[2] Cette ligne montre les transitions lorsque HandleType a été SQL_HANDLE_STMT.

[3] SQLGetDiagField retourne toujours une erreur dans cet état lorsque DiagIdentifier est SQL_DIAG_ROW_COUNT.

SQLGetEnvAttr

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
-- -- -- -- -- -- --

SQLGetFunctions

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
-- -- -- -- -- -- --

SQLGetInfo

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
-- -- -- -- -- -- --

SQLGetStmtAttr

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH --[1] 24000[2] --[1] 24000[2] --[1] 24000[2] Voir le tableau suivant HY010 HY010

[1] L’attribut d’instruction n’a pas été SQL_ATTR_ROW_NUMBER.

[2] L’attribut d’instruction a été SQL_ATTR_ROW_NUMBER.

SQLGetStmtAttr (États du curseur)

S5

Ouvert
S6

SQLFetch ou SQLFetchScroll
S7

SQLExtendedFetch
--[1] 24000[2] --[1] ou ([v] et [2]) 24000 [b] et [2] HY109 [i] et [2] -- [i] ou ([v] et [2]) 24000 [b] et [2] HY109[1] et [2]

[1] L’argument Attribute n’a pas été SQL_ATTR_ROW_NUMBER.

[2] L’argument Attribute a été SQL_ATTR_ROW_NUMBER.

SQLMoreResults

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
(IH) --[1] --[1] -- [s] et [2] S1 [nf], [np], [4] S2 [nf], [p], et [4] S5 [s] et [3] S11 [x] S1 [nf], [np], et [4] S3 [nf], [p] et [4] S4 [s] et [2] S5 [s] et [3] S11 [x] HY010 NS [c] HY010 [o]

[1] La fonction retourne toujours SQL_NO_DATA dans cet état.

[2] Le résultat suivant est un nombre de lignes.

[3] Le résultat suivant est un jeu de résultats.

[4] Le résultat actuel est le dernier résultat.

SQLNativeSql

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
-- -- -- -- -- -- --

SQLNumParams

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH HY010 -- [s] S11 [x] -- [s] S11 [x] -- [s] S11 [x] HY010 NS [c] HY010 [o]

SQLNumResultCols

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH HY010 -- [s] S11 [x] -- [s] S11 [x] -- [s] S11 [x] HY010 NS [c] HY010 [o]

SQLParamData

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH HY010 HY010 HY010 HY010 Voir le tableau suivant NS [c] HY010 [o]

SQLParamData (États de données nécessaires)

S8

Données nécessaires
S9

Doit mettre
S10

Peut mettre
S1 [e] et [1] S2 [e], [nr], [2] S3 [e], [r], et [2] S5 [e] et [4] S6 [e] et [5] S7 [e] et [3] S9 [d] S11 [x] HY010 S1 [e] et [1] S2 [e], [nr], [2] S3 [e], [r], et [2] S4 [s], [nr], et ([1] or [2]) S5 [s], [r] et ([1] ou [2]) S5 [s], [r] et ([1] 1] ou [2]) S5 ([s] ou [e]) et [4] S6 ([s] ou [e]) et [5] S7 ([s] ou [e]) et [3] S9 [d] S11 [x]

[1] SQLExecDirect a retourné SQL_NEED_DATA.

[2] SQLExecute a retourné SQL_NEED_DATA.

[3] SQLSetPos avait été appelé à partir de l’état S7 et retourné SQL_NEED_DATA.

[4] SQLBulkOperations avait été appelé à partir de l’état S5 et retourné SQL_NEED_DATA.

[5] SQLSetPos ou SQLBulkOperations avaient été appelés à partir de l’état S6 et retourné SQL_NEED_DATA.

SQLPrepare

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
(IH) S2 [s] et [nr] S3 [s] et [r] S11 [x] -- [s] or ([e] and [1]) S1 [e] and [2] S11 [x] S1 [e] et [3] S2 [s], [nr] et [3] S3 [s], [r] et [3] S11 [x] et [3] 24000[4] Voir le tableau suivant HY010 NS [c] HY010 [o]

[1] La préparation échoue pour une raison autre que la validation de l’instruction (SQLSTATE était HY009 [valeur d’argument non valide] ou HY090 [longueur de la chaîne ou de la mémoire tampon non valide]).

[2] La préparation échoue lors de la validation de l’instruction (sqlSTATE n’était pas HY009 [valeur d’argument non valide] ou HY090 [longueur de la chaîne ou de la mémoire tampon non valide]).

[3] Le résultat actuel est le dernier ou le seul résultat, ou il n’y a aucun résultat actuel. Pour plus d’informations sur plusieurs résultats, consultez Résultats multiples.

[4] Le résultat actuel n’est pas le dernier résultat.

SQLPrepare (États du curseur)

S5

Ouvert
S6

SQLFetch ou SQLFetchScroll
S7

SQLExtendedFetch
24 000 24 000 24 000

SQLPutData

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
IH HY010 HY010 HY010 HY010 Voir le tableau suivant NS [c] HY010 [o]

SQLPutData (États de données nécessaires)

S8

Besoin de données
S9

Must Put
S10

Put peut
HY010 S1 [e] et [1] S2 [e], [nr], et [2] S3 [e], [r], et [2] S5 [e] et [4] S6 [e] et [5] S7 [e] et [3] S10 [s] S11 [x] -- [s] S1 [e] and [1] S2 [e], [nr], and [2] S3 [e], [r] and [2] S5 [e] and [4] S6 [e] and [5] S7 [e] and [3] S11 [x] HY011[6]

[1] SQLExecDirect a retourné SQL_NEED_DATA.

[2] SQLExecute a retourné SQL_NEED_DATA.

[3] SQLSetPos avait été appelé à partir de l’état S7 et retourné SQL_NEED_DATA.

[4] SQLBulkOperations avait été appelé à partir de l’état S5 et retourné SQL_NEED_DATA.

[5] SQLSetPos ou SQLBulkOperations avait été appelé à partir de l’état S6 et retourné SQL_NEED_DATA.

[6] Un ou plusieurs appels à SQLPutData pour un paramètre unique ont retourné SQL_SUCCESS, puis un appel à SQLPutData a été effectué pour le même paramètre avec StrLen_or_Ind défini sur SQL_NULL_DATA.

SQLRowCount

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Besoin de données
S11-S12

Async
(IH) (HY010) (HY010) -- -- (HY010) (HY010)

SQLSetConnectAttr

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
--[1] -- -- -- --[2] 24000[3] HY010 HY010

[1] Cette ligne montre les transitions lorsque Attribut était un attribut de connexion. Pour les transitions lorsque Attribute était un attribut d’instruction, consultez la table de transition d’instructions pour SQLSetStmtAttr.

[2] L’argument Attribute n’a pas été SQL_ATTR_CURRENT_CATALOG.

[3] L’argument Attribute a été SQL_ATTR_CURRENT_CATALOG.

SQLSetCursorName

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH -- -- 24 000 24 000 HY010 HY010

SQLSetDescField et SQLSetDescRec

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH[1] -- -- -- -- HY010 HY010

[1] Cette ligne montre les transitions où l’argument DescriptorHandle est un argument ARD, APD, IPD ou (pour SQLSetDescField) un IRD lorsque l’argument FieldIdentifier est SQL_DESC_ARRAY_STATUS_PTR ou SQL_DESC_ROWS_PROCESSED_PTR. Il s’agit d’une erreur d’appeler SQLSetDescField pour un IRD lorsque FieldIdentifier est une autre valeur.

SQLSetEnvAttr

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
HY011 HY011 HY011 HY011 Y011 HY01 HY011

SQLSetPos

S0

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH HY010 HY010 24 000 Voir le tableau suivant HY010 NS [c] HY010 [o]

SQLSetPos (États du curseur)

S5

Ouvert
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

Non alloué
S1

Allocated
S2-S3

Prepared
S4

Exécuté
S5-S7

Curseur
S8-S10

Données nécessaires
S11-S12

Async
IH -- --[1] HY011[2] --[1] 24000[2] --[1] 24000[2] HY010 [np] ou [1] HY011 [p] et [2] HY010 [np] ou [1] HY011 [p] et [2]

[1] L’argument Attribute n’était pas 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] L’argument Attribute était SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, SQL_ATTR_USE_BOOKMARKS, SQL_ATTR_CURSOR_SCROLLABLE ou SQL_ATTR_CURSOR_SENSITIVITY.