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

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

8 réponses
Avatar
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

8 réponses

Avatar
news.motzarella.org
Le Thu, 18 Sep 2008 10:53:53 +0200, Yannick a écrit:

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
Avatar
Yannick
> Le Thu, 18 Sep 2008 10:53:53 +0200, Yannick a écrit:

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 ?
Avatar
news.motzarella.org
Le Thu, 18 Sep 2008 13:17:22 +0200, Yannick a écrit:

Le Thu, 18 Sep 2008 10:53:53 +0200, Yannick a écrit:

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
Avatar
Yannick
> Le Thu, 18 Sep 2008 13:17:22 +0200, Yannick a écrit:

Le Thu, 18 Sep 2008 10:53:53 +0200, Yannick a écrit:

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 ?
Avatar
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é)
Avatar
Firetox
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" a écrit dans le message de news:

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é)




Avatar
Yannick
> 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é.
Avatar
Yannick
> 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)