Tableau d’état des lignes
Outre les données, SQLFetch et SQLFetchScroll peuvent retourner un tableau qui donne l’état de chaque ligne dans l’ensemble de lignes. Ce tableau est spécifié via l’attribut d’instruction SQL_ATTR_ROW_STATUS_PTR. Ce tableau est alloué par l’application et doit avoir autant d’éléments que spécifiés par l’attribut d’instruction SQL_ATTR_ROW_ARRAY_SIZE. Les valeurs du tableau sont définies par SQLBulkOperations, SQLFetch, SQLFetchScroll et SQLSetPos. Les valeurs décrivent l’état de la ligne et indiquent si cet état a changé depuis sa dernière extraction.
Valeur du tableau d’état des lignes | Description |
---|---|
SQL_ROW_SUCCESS | La ligne a été récupérée avec succès et n’a pas changé depuis sa dernière extraction. |
SQL_ROW_SUCCESS_WITH_INFO | La ligne a été récupérée avec succès et n’a pas changé depuis sa dernière extraction. Toutefois, un avertissement a été retourné à propos de la ligne. |
SQL_ROW_ERROR | Une erreur s’est produite lors de l’extraction de la ligne. |
SQL_ROW_UPDATED | La ligne a été récupérée avec succès et a été mise à jour depuis sa dernière extraction. Si la ligne est récupérée à nouveau ou actualisée par SQLSetPos, son état est remplacé par le nouvel état. Certains pilotes ne peuvent pas détecter les modifications apportées aux données et ne peuvent donc pas retourner cette valeur. Pour déterminer si un pilote peut détecter les mises à jour des lignes refétées, une application appelle SQLGetInfo avec l’option SQL_ROW_UPDATES. |
SQL_ROW_DELETED | La ligne a été supprimée depuis sa dernière extraction. |
SQL_ROW_ADDED | La ligne a été insérée par SQLBulkOperations. Si la ligne est récupérée à nouveau ou actualisée par SQLSetPos, son état est SQL_ROW_SUCCESS. Cette valeur n’est pas définie par SQLFetch ou SQLFetchScroll. |
SQL_ROW_NOROW | L’ensemble de lignes se chevauche à la fin du jeu de résultats et aucune ligne n’a été retournée qui correspond à cet élément du tableau d’état de ligne. |