Verrouillage tables Oracle

Le
Gloops
Bonjour tout le monde,

Je rencontre un problème de verrouillage lors d'un accès concurrentie=
l
par plusieurs utilisateurs à la même base, en l'espèce une base Ora=
cle,
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 toujour=
s
pas utiliser la base à deux en même temps (l'objectif étant d'une
centaine )

Je m'aperçois que le fait qu'une liste reçoive ses données de la ba=
se
Oracle suffit à verrouiller le jeu d'enregistrements sur lequel elle se=

renseigne. J'ai tendance à voir ça comme une erreur d'implémentatio=
n,
puisqu'une fois la liste renseignée, la base source ne me paraît plus=

devoir être nécessaire (sauf Requery sur la liste, seul le jeu
d'enregistrements principal du formulaire est modifié par une sélecti=
on
dans la liste). Aussi je me rends compte que j'ai oublié un
renseignement capital, le numéro de version : Access 2003 (11.6566.8107=
)
SP2, sur Windows XP Professionnel 5.1.2600 Service Pack 2 Nu 2600, avec
une base frontale au format Access 2000, connectée à une base Oracle =
9i
9.2.0.1.0 par ODBC 3.525.1117.0.

Alors je pense avoir planté le décor, si j'ai oublié quelque chose =
on va
bien me le dire, la question est maintenant de savoir si la seule façon=

de m'en sortir est bien de créer avant ouverture des formulaires une
réplication de toutes les tables utilisées (maintenant que je me suis=

débrouillé pour ne pas verrouiller de table Oracle à partir de la
requête principale de chaque formulaire, il me reste à ne pas en
verrouiller à partir des contenus des contrôles). Si quelqu'un a une =

bonne doc pas trop brouillon sur la question, je suis preneur (et même,=

promis, je ne traînerai pas). J'ai lu une histoire de table temporaire =

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

de l'auteur pour que je m'en sorte avec juste ce que j'ai, surtout que
les exemples sont déconnectés du texte.

Si quelqu'un pense pouvoir me mettre sur la piste
Questions / Réponses high-tech
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
Gloops
Le #16618861
[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 ...




Publicité
Poster une réponse
Anonyme