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

[WD10] blocages avec sqlmanagerX

6 réponses
Avatar
Jacques TREPP
Bonjour,

voici une question "à la cantonnade" pour Frédéric :D
base : Postgresql
dans une liste d'articles, un double-clic ouvre la fiche en mode modif :
init de la fenètre fiche :
g_retour = ART:SQLLitBloque("id_article="+art_actuel,0,30)
SI g_retour ALORS
ART:SQLTableVersEcran("Fiche_Article")
FIN

le blocage est effectué puisque la même opération sur un autre instance
constate le blocage.

Si dans la première instance, j'exécute ART:SqlUpdate()
, l'enregistrement est débloqué.
Par contre, si je clique sur annuler, le record reste bloqué.
ça m'ennuie de faire un update dans une annulation.

Comment débloquer un record bloqué sans faire un update ?
ART:sqltransactionfin ?

merci


--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)

6 réponses

Avatar
Firetox
Bonjour, jacques

si tu laisse SQLManagerX faire le blocage alors il faut pour debloquer :

soit un update
soit un nouveau select
soit activer un filtre
soit envoyé deadLock

donc dans ton code : ART:SQLDeadLock en passant la methode en public
ce que je fais tout de suite comme ca la prochaine version sera ops

Sinon desactive les transaction SQLManagerX et tu peux les gerer
par les transaction de l'acces natif directement

c'est a ton choix

@+

"Jacques TREPP" a écrit dans le message de news:
48623d42$0$9471$
Bonjour,

voici une question "à la cantonnade" pour Frédéric :D
base : Postgresql
dans une liste d'articles, un double-clic ouvre la fiche en mode modif :
init de la fenètre fiche :
g_retour = ART:SQLLitBloque("id_article="+art_actuel,0,30)
SI g_retour ALORS
ART:SQLTableVersEcran("Fiche_Article")
FIN

le blocage est effectué puisque la même opération sur un autre instance
constate le blocage.

Si dans la première instance, j'exécute ART:SqlUpdate()
, l'enregistrement est débloqué.
Par contre, si je clique sur annuler, le record reste bloqué.
ça m'ennuie de faire un update dans une annulation.

Comment débloquer un record bloqué sans faire un update ?
ART:sqltransactionfin ?

merci


--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)


Avatar
Jacques TREPP
"Firetox" a écrit dans le message de
news:48625bf8$0$3748$
Bonjour, jacques

si tu laisse SQLManagerX faire le blocage alors il faut pour debloquer :

soit un update
soit un nouveau select
soit activer un filtre
soit envoyé deadLock

donc dans ton code : ART:SQLDeadLock en passant la methode en public
ce que je fais tout de suite comme ca la prochaine version sera ops

Sinon desactive les transaction SQLManagerX et tu peux les gerer
par les transaction de l'acces natif directement

c'est a ton choix




Bonjour, Frédéric, et merci pour ta réponse rapide.
Si j'ai bien compris, je peux faire indifféremment :
ART:SQLDeadLock ()
ou
ART:SQLFiltre("","")

Je regarde ça tout de suite.


--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Avatar
Firetox
jacques a ecrit
Bonjour, Frédéric, et merci pour ta réponse rapide.
Si j'ai bien compris, je peux faire indifféremment :
ART:SQLDeadLock ()
ou
ART:SQLFiltre("","")



Je regarde ça tout de suite.



je passerais plutot par deadLock car dans le filtre la ligne DeadLock est
desactivée car elle peut être utilisée ailleur donc
le filtre ne te desactivera pas le lock (par contre la ligne a ete mise en
commentaire le 15/05/2006 donc je pense que cela a ete fait pour une bonne
raison

a mon avis la premiere methode est la bonne





"Jacques TREPP" a écrit dans le message de news:
48634e1d$0$28749$
"Firetox" a écrit dans le message de
news:48625bf8$0$3748$
Bonjour, jacques

si tu laisse SQLManagerX faire le blocage alors il faut pour debloquer :

soit un update
soit un nouveau select
soit activer un filtre
soit envoyé deadLock

donc dans ton code : ART:SQLDeadLock en passant la methode en public
ce que je fais tout de suite comme ca la prochaine version sera ops

Sinon desactive les transaction SQLManagerX et tu peux les gerer
par les transaction de l'acces natif directement

c'est a ton choix




Bonjour, Frédéric, et merci pour ta réponse rapide.
Si j'ai bien compris, je peux faire indifféremment :
ART:SQLDeadLock ()
ou
ART:SQLFiltre("","")

Je regarde ça tout de suite.


--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)


Avatar
Jacques TREPP
"Firetox" a écrit dans le message de
news:48635040$0$9222$


je passerais plutot par deadLock car dans le filtre la ligne DeadLock est
desactivée car elle peut être utilisée ailleur donc
le filtre ne te desactivera pas le lock (par contre la ligne a ete mise en
commentaire le 15/05/2006 donc je pense que cela a ete fait pour une bonne
raison

a mon avis la premiere methode est la bonne



Frédéric,
la fonction Deadlock n'est pas accessible puisque PRIVEE.
Je l'ai passée en PUBLIC, et ça fonctionne, avec, par exemple :
ART:SQLDeadLock()

j'ai bien fait ?

Merci



--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Avatar
Firetox
Oui jacques je l'ai fait hier en te repondant :

donc dans ton code : ART:SQLDeadLock en passant la methode en public
ce que je fais tout de suite comme ca la prochaine version sera ops

la methode SQLDeadLock est en public maintenant

@+

"Jacques TREPP" a écrit dans le message de news:
48636ac6$0$31879$
"Firetox" a écrit dans le message de
news:48635040$0$9222$


je passerais plutot par deadLock car dans le filtre la ligne DeadLock est
desactivée car elle peut être utilisée ailleur donc
le filtre ne te desactivera pas le lock (par contre la ligne a ete mise
en commentaire le 15/05/2006 donc je pense que cela a ete fait pour une
bonne raison

a mon avis la premiere methode est la bonne



Frédéric,
la fonction Deadlock n'est pas accessible puisque PRIVEE.
Je l'ai passée en PUBLIC, et ça fonctionne, avec, par exemple :
ART:SQLDeadLock()

j'ai bien fait ?

Merci



--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)


Avatar
Jacques TREPP
"Firetox" a écrit dans le message de
news:48636f4b$0$12680$
Oui jacques je l'ai fait hier en te repondant :

donc dans ton code : ART:SQLDeadLock en passant la methode en public
ce que je fais tout de suite comme ca la prochaine version sera ops

la methode SQLDeadLock est en public maintenant

@+





Bien compris.
Merci encore

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)