Partie III
Langages et outils
308
© Éditions Eyrolles
Il est aussi possible de définir un curseur par une requête de type SELECT… FOR UPDATE.
Les principales méthodes relatives aux curseurs modifiables sont les suivantes :
Les opérations de modification et d’insertion (UPDATE et INSERT) à travers un curseur se réalisent
en deux temps : mise à jour du curseur puis propagation à la table de la base de données. Il suffit
ainsi de ne pas exécuter la deuxième étape pour ne pas opérer la mise à jour de la base.
La suppression d’enregistrements (DELETE) à travers un curseur s’opère en une seule instruction qui n’est pas forcément validée par la suite : il faudra programmer explicitement le commit
ou laisser le paramètre d’autocommit à true (par défaut).
La figure suivante illustre les modifications effectuées sur la table Avion par l’intermédiaire
du curseur CurseurModifJava utilisé par les trois programmes Java suivants :
Tableau 8-23 Méthodes de navigation dans un curseur
Méthode
Fonction
int getResultSetType()
Renvoie le caractère navigable des curseurs d’un état donné
(ResultSet.TYPE_FORWARD_ONLY…).
int getResultSetConcurrency() Renvoie le caractère modifiable des curseurs d’un état donné
(ResultSet.CONCUR_READ_ONLY ou
ResultSet.CONCUR_UPDATABLE).
int getType()
Renvoie le caractère navigable d’un curseur donné.
int getConcurrency()
Renvoie le caractère modifiable d’un curseur donné.
void deleteRow()
Supprime l’enregistrement courant.
void updateRow()
Modifie la table avec l’enregistrement courant.
void cancelRowUpdates()
Annule les modifications faites sur l’enregistrement courant.
void moveToInsertRow()
Déplace le curseur vers un nouvel enregistrement.
void insertRow()
Insère dans la table l’enregistrement courant.
void moveToCurrentRow()
Retour vers l’enregistrement courant (à utiliser éventuellement
après moveToInsertRow).
Figure 8-6 Mises à jour d’un curseur
Avion
immat
typeAvion
cap
comp
F-FGFB
Concorde
95
AF
F-GKUB
A330 →A380 240→350
AERI
F-GLFS
A320
140
TAT
F-GLKT
A340
300
AERI
F-GLZV
A330
250
AERI
F-WTSS
Concorde
90
AF
F-LUTE
TB20
4
NULL
curseurModifJava
insertRow()
deleteRow()
updateRow()
Langages et outils
308
© Éditions Eyrolles
Il est aussi possible de définir un curseur par une requête de type SELECT… FOR UPDATE.
Les principales méthodes relatives aux curseurs modifiables sont les suivantes :
Les opérations de modification et d’insertion (UPDATE et INSERT) à travers un curseur se réalisent
en deux temps : mise à jour du curseur puis propagation à la table de la base de données. Il suffit
ainsi de ne pas exécuter la deuxième étape pour ne pas opérer la mise à jour de la base.
La suppression d’enregistrements (DELETE) à travers un curseur s’opère en une seule instruction qui n’est pas forcément validée par la suite : il faudra programmer explicitement le commit
ou laisser le paramètre d’autocommit à true (par défaut).
La figure suivante illustre les modifications effectuées sur la table Avion par l’intermédiaire
du curseur CurseurModifJava utilisé par les trois programmes Java suivants :
Tableau 8-23 Méthodes de navigation dans un curseur
Méthode
Fonction
int getResultSetType()
Renvoie le caractère navigable des curseurs d’un état donné
(ResultSet.TYPE_FORWARD_ONLY…).
int getResultSetConcurrency() Renvoie le caractère modifiable des curseurs d’un état donné
(ResultSet.CONCUR_READ_ONLY ou
ResultSet.CONCUR_UPDATABLE).
int getType()
Renvoie le caractère navigable d’un curseur donné.
int getConcurrency()
Renvoie le caractère modifiable d’un curseur donné.
void deleteRow()
Supprime l’enregistrement courant.
void updateRow()
Modifie la table avec l’enregistrement courant.
void cancelRowUpdates()
Annule les modifications faites sur l’enregistrement courant.
void moveToInsertRow()
Déplace le curseur vers un nouvel enregistrement.
void insertRow()
Insère dans la table l’enregistrement courant.
void moveToCurrentRow()
Retour vers l’enregistrement courant (à utiliser éventuellement
après moveToInsertRow).
Figure 8-6 Mises à jour d’un curseur
Avion
immat
typeAvion
cap
comp
F-FGFB
Concorde
95
AF
F-GKUB
A330 →A380 240→350
AERI
F-GLFS
A320
140
TAT
F-GLKT
A340
300
AERI
F-GLZV
A330
250
AERI
F-WTSS
Concorde
90
AF
F-LUTE
TB20
4
NULL
curseurModifJava
insertRow()
deleteRow()
updateRow()
