Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème d'utilisation de la clause CURRENT OF

1 réponse
Avatar
KOUASSI Yao-Koffi
Salut !
Je suis en train de migrer une application de Centura=20
SQLBase 7.5.1 sous SQL Server et je viens de tomber sur un=20
probl=E8me d'utilisation de la clause CURRENT OF lors d'une=20
mise =E0 jour.

Sous SQLBase de centura, pour utiliser cette clause, il=20
faut proc=E9der comme suit :
1- Il faut tout d'abord disposer de deux (2) curseurs :=20
un curseur CUR1, associ=E9 =E0 une requ=EAte de type SELECT
un curseur CUR2, associ=E9 =E0 la requ=EAte de type UPDATE
2- Ensuite, il faut nommer le curseur CUR1, ex=E9cuter la=20
requ=EAte de type SELECT, puis se positionner sur la ligne =E0=20
mettre =E0 jour
3- Enfin, la requ=EAte de mise =E0 jour associ=E9e au curseur=20
CUR2 peut =EAtre ex=E9cut=E9e, et elle mettra =E0 jour la ligne=20
sur laquelle est positionn=E9 le curseur CUR1.

Sous SQL Server, Ce cheminement ne marche pas. J'ai=20
l'impression que le nom que j'ai sp=E9cifi=E9 pour le curseur=20
CUR1 ne peut pas =EAtre contenue dans la clause UPDATE=20
associ=E9e au curseur CUR2. Ai-je raison et si non, comment=20
puis-je pour contourner ce probl=E8me ?

1 réponse

Avatar
Fred BROUARD
un seul curseur ouvert FOR UPDATE.

Au cours du traitement faire un UPDATE en ajoutant la clause WHERE
CURRENT OF

A +

KOUASSI Yao-Koffi a écrit:
Salut !
Je suis en train de migrer une application de Centura
SQLBase 7.5.1 sous SQL Server et je viens de tomber sur un
problème d'utilisation de la clause CURRENT OF lors d'une
mise à jour.

Sous SQLBase de centura, pour utiliser cette clause, il
faut procéder comme suit :
1- Il faut tout d'abord disposer de deux (2) curseurs :
un curseur CUR1, associé à une requête de type SELECT
un curseur CUR2, associé à la requête de type UPDATE
2- Ensuite, il faut nommer le curseur CUR1, exécuter la
requête de type SELECT, puis se positionner sur la ligne à
mettre à jour
3- Enfin, la requête de mise à jour associée au curseur
CUR2 peut être exécutée, et elle mettra à jour la ligne
sur laquelle est positionné le curseur CUR1.

Sous SQL Server, Ce cheminement ne marche pas. J'ai
l'impression que le nom que j'ai spécifié pour le curseur
CUR1 ne peut pas être contenue dans la clause UPDATE
associée au curseur CUR2. Ai-je raison et si non, comment
puis-je pour contourner ce problème ?



--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************