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

Verrouillage tables Oracle

1 réponse
Avatar
Gloops
Bonjour tout le monde,

Je rencontre un probl=E8me de verrouillage lors d'un acc=E8s concurrentie=
l=20
par plusieurs utilisateurs =E0 la m=EAme base, en l'esp=E8ce une base Ora=
cle,=20
depuis un frontal Access puisque c'est d'Access qu'il est question ici.

J'ai remarqu=E9 que j'obtenais un progr=E8s en pla=E7ant le formulaire en=
mode=20
"modification autoris=E9e : non", et "type recordset : instantan=E9".

Toutefois, si la situation s'est un peu am=E9lior=E9e, on ne peut toujour=
s=20
pas utiliser la base =E0 deux en m=EAme temps (l'objectif =E9tant d'une=20
centaine ...)

Je m'aper=E7ois que le fait qu'une liste re=E7oive ses donn=E9es de la ba=
se=20
Oracle suffit =E0 verrouiller le jeu d'enregistrements sur lequel elle se=
=20
renseigne. J'ai tendance =E0 voir =E7a comme une erreur d'impl=E9mentatio=
n,=20
puisqu'une fois la liste renseign=E9e, la base source ne me para=EEt plus=
=20
devoir =EAtre n=E9cessaire (sauf Requery sur la liste, seul le jeu=20
d'enregistrements principal du formulaire est modifi=E9 par une s=E9lecti=
on=20
dans la liste). Aussi je me rends compte que j'ai oubli=E9 un=20
renseignement capital, le num=E9ro de version : Access 2003 (11.6566.8107=
)=20
SP2, sur Windows XP Professionnel 5.1.2600 Service Pack 2 Nu 2600, avec=20
une base frontale au format Access 2000, connect=E9e =E0 une base Oracle =
9i=20
9.2.0.1.0 par ODBC 3.525.1117.0.

Alors je pense avoir plant=E9 le d=E9cor, si j'ai oubli=E9 quelque chose =
on va=20
bien me le dire, la question est maintenant de savoir si la seule fa=E7on=
=20
de m'en sortir est bien de cr=E9er avant ouverture des formulaires une=20
r=E9plication de toutes les tables utilis=E9es (maintenant que je me suis=
=20
d=E9brouill=E9 pour ne pas verrouiller de table Oracle =E0 partir de la=20
requ=EAte principale de chaque formulaire, il me reste =E0 ne pas en=20
verrouiller =E0 partir des contenus des contr=F4les). Si quelqu'un a une =

bonne doc pas trop brouillon sur la question, je suis preneur (et m=EAme,=
=20
promis, je ne tra=EEnerai pas). J'ai lu une histoire de table temporaire =

sous Oracle, mais la notion de plan me para=EEt trop floue dans l'esprit =

de l'auteur pour que je m'en sorte avec juste ce que j'ai, surtout que=20
les exemples sont d=E9connect=E9s du texte.

Si quelqu'un pense pouvoir me mettre sur la piste ...

1 réponse

Avatar
Gloops
[Verrouillage par défaut des enregistrements Oracle sur frontal Access]

Bonjour,

A l'occasion d'une réinstallation de messagerie je relis mes anciens
messages, et je me rends compte que j'avais oublié celui-ci -sur lequel
quelqu'un confronté aux mêmes problèmes ne manquera pas de tomber.

A l'occasion d'une autre recherche, ayant mieux formulé les critères,
j'ai trouvé une réponse là-dessus :

http://officesystemaccess.seneque.net/

Il convient de regarder dans les options d'Access, onglet avancé, on
trouve trois options concernant le verrouillage et le partage.

Je n'ai pas compris à quoi sert Access en frontal d'Oracle avec les
options qui étaient installées par défaut, mais une fois la case
"verrouiller les enregistrements par défaut" décochée et les deux a utres
options réglées correctement, j'ai pu commencer à travailler et je suis
arrivé à un formulaire capable d'afficher et de modifier des donnée s.
J'ai travaillé avec des tables temporaires créées sur le frontal Ac cess.
D'autres pistes sont ouvertes pour créer des tables temporaires sous
Oracle, et pour ne pas utiliser de table temporaire ; je n'ai pas eu le
temps de les explorer, j'arrivais en fin de mission.

Pour les tables temporaires sous Oracle, il semble que le nœud de la
question soit de s'assurer de travailler avec une seule connexion entre
Access et Oracle, sinon on a un exemplaire de chaque table temporaire
par connexion, et bien entendu on n'en remplit qu'un. Grâce à
Shakespeare sur les newsgroups comp.databases.oracle.misc /
comp.databases.ms-access (oui, je me suis rendu compte trop tard que
j'avais oublié le follow-up to), je sais que pour appeler depuis Access
une procédure stockée Oracle MajTabTemp, la syntaxe est
"BEGIN MAJTABTEMP; END;"

Il y aurait encore un fignolage à faire sur les verrouillages, je
partirais bien dans la direction de placer un verrou explicite sur
l'enregistrement lors du clic sur le bouton qui autorise les
modifications -sinon, si je ne m'abuse, par défaut on ne verrouille la
table principale qu'au moment de valider les modifications, donc deux
utilisateurs peuvent être en train de saisir les mêmes modifications en
même temps.

_____________________________________
Gloops a écrit, le 06/08/2008 21:23 :
Bonjour tout le monde,

Je rencontre un problème de verrouillage lors d'un accès concurrent iel
par plusieurs utilisateurs à la même base, en l'espèce une base O racle,
depuis un frontal Access puisque c'est d'Access qu'il est question ici.

J'ai remarqué que j'obtenais un progrès en plaçant le formulaire en mode
"modification autorisée : non", et "type recordset : instantané".

Toutefois, si la situation s'est un peu améliorée, on ne peut toujo urs
pas utiliser la base à deux en même temps (l'objectif étant d'une
centaine ...)




Si quelqu'un pense pouvoir me mettre sur la piste ...