|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2007 Messages : 48 ![]() |
Bonjour,
J'ai besoin de verrouiller une ligne dans une table, faire en sorte que personne ne puisse LIRE cette ligne... Donc en résumé, une table contient des IDS à utiliser dans d'autre tables, je dois lire dans cette table la ligne qui m'intéresse et la verrouiller, prendre le numéro, l'incrémenter, écrire le nouveau numéro et déverrouiller. Donc si deux transactions tournent en même temps, il faut que la deuxième attende que la première soit terminée avant de pouvoir lire la ligne. PS: avant le fichier était accédé uniquement par du cobol. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 098 ![]() |
DB2 sur quel OS ?
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2007 Messages : 48 ![]() |
os400 v5r3
PS: s'il n'y a pas d'autre choix, je verrouille toute la table la requête ne prends pas plus de 1 sec de toute façon... |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 098 ![]() |
En DB2 for z/OS on aurait pu faire un curseur (obligatoire dans ce cas) avec un SELECT ... FOR UPDATE OF ...
Je ne sais pas si ça marche aussi avec DB2 OS/400 ... |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2007 Messages : 48 ![]() |
oui, une procédure stockée quoi, je vais essayer ça...
|
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Oui Luc, on peut aussi le faire sur AS400. Tant que la table n'aura pas été mise à jour, la ligne (l'enreg.) sera verrouillée.
Exemple en RPG IV: Code :
|
||
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2007 Messages : 48 ![]() |
Merci, mais je pense que je vais le faire avec une procédure stockée SQL, ce sera plus simple à utiliser pour du Java (que de faire appel à du RPG par Java) .
Je vous donne la solution une fois que je l'aurai trouvée... |
|
|
00
|
|
|
#8 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2007 Messages : 48 ![]() |
Voilà, c'est pas encore tout à fait complet pour mon cas mais ça fonctionne.
Code :
Code :
|
||||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Mets la bibliothèque concernée en *CURLIB pour éviter d'avoir à qualifier les objets dans la fonction.
Ah, à propos, ce que tu as écrit, c'est une fonction scalaire SQL et non pas une procédure stockée. |
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2007 Messages : 48 ![]() |
Ah, à propos, ce que tu as écrit, c'est une fonction scalaire SQL et non pas une procédure stockée.
Exact :-) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com