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

pb de curseur sur un recordset

2 réponses
Avatar
Gilles Lebret
Bonjour à tous,

J'accède à des données d'une base access 2003 avec jet 4.x depuis un
environnement VB (ou VBA).

Ma question concerne l'accès multi-utilisateurs à une ligne UNIQUE
d'enregistrement d'une table a l'aide d'une requête simple ( select ... from
where ) .
Ce que je veux faire c'est accèder à cette seule ligne en accès exclusif
pour la verrouiller (avec la valeur dbPessimistic ??)
de façon que si d'autres users essayent d'accéder à cette même ligne en mode
lecture-écriture à ce moment là une erreur soit retournée. En gérant cette
erreur cela permet au programme de prendre telle ou telle décision

Le problème que j'ai est que lors de cet accès exclusif l'enregistrment en
question est bien bloqué mais en même temps d'autres enregistrements sont
bloqués puisque Jet à l'air de gérer des "pages" de données qui englobent
plusieurs lignes d'enregistrement.

Est-ce qu'il y a une solution pour ne bloquer qu'une seule ligne
d'enregistrement et non une page d'enregistrements ?
Je pense que cela devrait se faire en configurant la liaison avec la base
mais je ne trouve pas.

Merci d'avance de vos réponses

Gilles Le Bret

2 réponses

Avatar
Jean-marc
"Gilles Lebret" wrote in message
news:
Bonjour à tous,

J'accède à des données d'une base access 2003 avec jet 4.x depuis un
environnement VB (ou VBA).

Ma question concerne l'accès multi-utilisateurs à une ligne UNIQUE
d'enregistrement d'une table a l'aide d'une requête simple ( select ...
from where ) .
Ce que je veux faire c'est accèder à cette seule ligne en accès exclusif
pour la verrouiller (avec la valeur dbPessimistic ??)
de façon que si d'autres users essayent d'accéder à cette même ligne en
mode lecture-écriture à ce moment là une erreur soit retournée. En gérant
cette erreur cela permet au programme de prendre telle ou telle décision

Le problème que j'ai est que lors de cet accès exclusif l'enregistrment en
question est bien bloqué mais en même temps d'autres enregistrements sont
bloqués puisque Jet à l'air de gérer des "pages" de données qui englobent
plusieurs lignes d'enregistrement.



Hello,

à partir de Jet 4, Microsoft a introduit le locking au niveau record, donc
il y a une solution.
Je n'ai pas eu à faire ça depuis des années, mais je sais qu'on y arrive.

J'ai retrouvé quelques docs:

Tu devrais trouver dans cet article la solution à ton problème:
http://groups.google.fr/group/microsoft.public.vb.database/
browse_thread/thread/2ba2f8310c1de9f1/f4768c8c850b5c2d%23f4768c8c850b5c2d

Je ne l'ai pas lu en entier, mais ça à l'air de coller.

Quelques infos la aussi:
http://advisor.com/doc/13043

et la:
http://office.microsoft.com/en-us/access/HP052408601033.aspx

Intéressant ici (chercher "Record Locking")
http://209.85.129.104/search?qÊche:q1Pw3z-pHPMJ:appdevissues.tripod.com/
downloads/Developing%2520Multi-User%2520Microsoft%2520Access%2520Database
%2520Applications.pdf+jet+access+lock+record&hl=fr&ct=clnk&cd(&gl=fr

ou le pdf:
http://appdevissues.tripod.com/downloads/Developing%20Multi-User%20Microsoft
%20Access%20Database%20Applications.pdf

et encore la:
http://www.slais.ubc.ca/PEOPLE/students/resumes/K_Mulhern/Projects/
Access_presentation_finaldraft.pdf


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Gilles Lebret
Jean Marc bonsoir et merci

nous allons creuser cela et te tenir au jus si cela marche (et si cela ne
marche pas aussi).

Gilles Le Bret

"Jean-marc" a écrit dans le message de news:
epv4fj$2n0$
"Gilles Lebret" wrote in message
news:
Bonjour à tous,

J'accède à des données d'une base access 2003 avec jet 4.x depuis un
environnement VB (ou VBA).

Ma question concerne l'accès multi-utilisateurs à une ligne UNIQUE
d'enregistrement d'une table a l'aide d'une requête simple ( select ...
from where ) .
Ce que je veux faire c'est accèder à cette seule ligne en accès exclusif
pour la verrouiller (avec la valeur dbPessimistic ??)
de façon que si d'autres users essayent d'accéder à cette même ligne en
mode lecture-écriture à ce moment là une erreur soit retournée. En gérant
cette erreur cela permet au programme de prendre telle ou telle décision

Le problème que j'ai est que lors de cet accès exclusif l'enregistrment
en
question est bien bloqué mais en même temps d'autres enregistrements sont
bloqués puisque Jet à l'air de gérer des "pages" de données qui englobent
plusieurs lignes d'enregistrement.



Hello,

à partir de Jet 4, Microsoft a introduit le locking au niveau record, donc
il y a une solution.
Je n'ai pas eu à faire ça depuis des années, mais je sais qu'on y arrive.

J'ai retrouvé quelques docs:

Tu devrais trouver dans cet article la solution à ton problème:
http://groups.google.fr/group/microsoft.public.vb.database/
browse_thread/thread/2ba2f8310c1de9f1/f4768c8c850b5c2d%23f4768c8c850b5c2d

Je ne l'ai pas lu en entier, mais ça à l'air de coller.

Quelques infos la aussi:
http://advisor.com/doc/13043

et la:
http://office.microsoft.com/en-us/access/HP052408601033.aspx

Intéressant ici (chercher "Record Locking")
http://209.85.129.104/search?qÊche:q1Pw3z-pHPMJ:appdevissues.tripod.com/
downloads/Developing%2520Multi-User%2520Microsoft%2520Access%2520Database
%2520Applications.pdf+jet+access+lock+record&hl=fr&ct=clnk&cd(&gl=fr

ou le pdf:
http://appdevissues.tripod.com/downloads/Developing%20Multi-User%20Microsoft
%20Access%20Database%20Applications.pdf

et encore la:
http://www.slais.ubc.ca/PEOPLE/students/resumes/K_Mulhern/Projects/
Access_presentation_finaldraft.pdf


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/