Accès concurrent sur une base de données PROGRESS ?

Le
Yannick
Bonjour

Avec le L4G fourni par PROGRESS, on gère les accès concurrent de la
façon suivante :

"find first client EXCLUSIVE-LOCK"
-> de cette façon, l'enregistrement client est bloqué en écriture pour
les autres sessions


Comment réaliser cela avec le langage SQL ?

Merci pour vos réponses
Yannick
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
news.motzarella.org
Le #17261701
Le Thu, 18 Sep 2008 10:53:53 +0200, Yannick
Bonjour

Avec le L4G fourni par PROGRESS, on gère les accès concurrent de la
façon suivante :

"find first client EXCLUSIVE-LOCK"
-> de cette façon, l'enregistrement client est bloqué en écriture pour
les autres sessions


Comment réaliser cela avec le langage SQL ?

Merci pour vos réponses
Yannick




En oracle en tout cas : select ... from ... for update [of ...] [nowait]


--
JB
Yannick
Le #17262601
> Le Thu, 18 Sep 2008 10:53:53 +0200, Yannick
Bonjour

Avec le L4G fourni par PROGRESS, on gère les accès concurrent de la façon
suivante :

"find first client EXCLUSIVE-LOCK"
-> de cette façon, l'enregistrement client est bloqué en écriture pour les
autres sessions


Comment réaliser cela avec le langage SQL ?

Merci pour vos réponses
Yannick




En oracle en tout cas : select ... from ... for update [of ...] [nowait]



avec quel instruction du wlangage ? HExécuteRequêteSQL ?
news.motzarella.org
Le #17262731
Le Thu, 18 Sep 2008 13:17:22 +0200, Yannick
Le Thu, 18 Sep 2008 10:53:53 +0200, Yannick
Bonjour

Avec le L4G fourni par PROGRESS, on gère les accès concurrent de la
façon suivante :

"find first client EXCLUSIVE-LOCK"
-> de cette façon, l'enregistrement client est bloqué en écriture pour
les autres sessions


Comment réaliser cela avec le langage SQL ?

Merci pour vos réponses
Yannick




En oracle en tout cas : select ... from ... for update [of ...] [nowait]



avec quel instruction du wlangage ? HExécuteRequêteSQL ?




oui , avec hrequetesanscorrection


--
JB
Yannick
Le #17262841
> Le Thu, 18 Sep 2008 13:17:22 +0200, Yannick
Le Thu, 18 Sep 2008 10:53:53 +0200, Yannick
Bonjour

Avec le L4G fourni par PROGRESS, on gère les accès concurrent de la façon
suivante :

"find first client EXCLUSIVE-LOCK"
-> de cette façon, l'enregistrement client est bloqué en écriture pour
les autres sessions


Comment réaliser cela avec le langage SQL ?

Merci pour vos réponses
Yannick




En oracle en tout cas : select ... from ... for update [of ...] [nowait]



avec quel instruction du wlangage ? HExécuteRequêteSQL ?




oui , avec hrequetesanscorrection



si HExécuteRequêteSQL sort en erreur, c'est que l'enregistrement est
verrouillé (ou inexistant bien sûr) ?

puis, pour modifier l'enregistrement, il faut faire un HModifie ?
Romain PETIT
Le #17263181
Yannick avait prétendu :
En oracle en tout cas : select ... from ... for update [of ...] [nowait]









avec quel instruction du wlangage ? HExécuteRequêteSQL ?







oui , avec hrequetesanscorrection





si HExécuteRequêteSQL sort en erreur, c'est que l'enregistrement est
verrouillé (ou inexistant bien sûr) ?
puis, pour modifier l'enregistrement, il faut faire un HModifie ?



Je crois qu'en SQL, on travaille de préférence par transaction que l'on
valide par un COMMIT ou annule par un ROLLBACK.
http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.2

Qu'en disent les utilisateurs des accès alternatifs ?

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Firetox
Le #17263681
Bonjour,

uen transaction en bloc pas forcement la ligne (du moins ne specifie pas
forcement que la ligne est bloqué)
et cela depend surtout de l'isolation des transacations

mais je ne connais pas progress de toute façon je pense que vous passez par
ODBC mais apres quelque recherches je n'ai pas trouvé de syntaxe SQL pour
progress (ca a l'ai nebuleux comme produit : pas de doc si la base est
attable en SQL et quel syntaxe est accpetée)

Bon dev
@+

Firetox

"Romain PETIT"
Yannick avait prétendu :
En oracle en tout cas : select ... from ... for update [of ...]
[nowait]









avec quel instruction du wlangage ? HExécuteRequêteSQL ?







oui , avec hrequetesanscorrection





si HExécuteRequêteSQL sort en erreur, c'est que l'enregistrement est
verrouillé (ou inexistant bien sûr) ?
puis, pour modifier l'enregistrement, il faut faire un HModifie ?



Je crois qu'en SQL, on travaille de préférence par transaction que l'on
valide par un COMMIT ou annule par un ROLLBACK.
http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.2

Qu'en disent les utilisateurs des accès alternatifs ?

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)




Yannick
Le #17263671
> Yannick avait prétendu :
En oracle en tout cas : select ... from ... for update [of ...] [nowait]









avec quel instruction du wlangage ? HExécuteRequêteSQL ?







oui , avec hrequetesanscorrection





si HExécuteRequêteSQL sort en erreur, c'est que l'enregistrement est
verrouillé (ou inexistant bien sûr) ?
puis, pour modifier l'enregistrement, il faut faire un HModifie ?



Je crois qu'en SQL, on travaille de préférence par transaction que l'on
valide par un COMMIT ou annule par un ROLLBACK.
http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1.2

Qu'en disent les utilisateurs des accès alternatifs ?




Bonjour Romain

Article très intéressant, mais déroutant...
Cette gestion de transaction fonctionne "à l'envers" du verrou :

Avec un verrou, une fois posé, l'enregistrement concerné est "acquis",
et on peut donc le modifier

Avec cette gestion par transaction, on fait les modif, puis on est
obligé de relire le résultat pour voir si un critère est respecté, et
défaire cette transaction si ce n'est pas le cas...

ça me semble bien plus compliqué.
Yannick
Le #17263661
> Bonjour,

uen transaction en bloc pas forcement la ligne (du moins ne specifie pas
forcement que la ligne est bloqué)
et cela depend surtout de l'isolation des transacations

mais je ne connais pas progress de toute façon je pense que vous passez par
ODBC mais apres quelque recherches je n'ai pas trouvé de syntaxe SQL pour
progress (ca a l'ai nebuleux comme produit : pas de doc si la base est
attable en SQL et quel syntaxe est accpetée)

Bon dev
@+

Firetox




La syntaxe donné par JB (pour base oracle) me semble adapté pour
Progress (tests en cours)

je passe effectivement par ODBC. J'ai aussi l'accès natif pc-soft pour
progress, mais, à priori, on ne peut pas bloquer les enregistrements
(contact en cours avec st-pcsoft)
Publicité
Poster une réponse
Anonyme