Bonjour,
J'ai besoin de modifier une application écrite en VB5 utilisant Access via DAO pour qu'elle attaque désormais une base MySQL 5.0 (La base Access a été migrée vers MySQL) . J'utilise donc un pilote ODBC (3.51.21). Cela se passe sans problème en lecture. Par contre en modification si je tente modifier deux fois de suite le même enregistrement, cela provoque l'erreur 3197:
"Le moteur de base de données Microsoft Jet a arreté le traitement parce que vous et un autre utilisateur tentez de modifier les mêmes données en même temps."
Par exemple ce code provoque l'erreur:
Le problème est identique si je veux modifier deux enregistrements différents au sein du même recordset!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Dim MyWorkSpace as WorkSpace Dim sConnect As String Dim Mdb As Database Dim t as recordset Set MyWorkSpace = CreateWorkspace("", "Admin", "") DSN$ = "MaBase" sConnect = "ODBC;DSN=" & DSN$ & ";" sConnect = sConnect & "UID=root;" sConnect = sConnect & "PWD=PSW;" sConnect = sConnect & "Database=MaBase;" Set Mdb= MyWorkSpace.OpenDatabase("", False, False, sConnect) r$ = "SELECT * FROM Table WHERE Code = 12;" Set t = Mdb.OpenRecordset(r$, dbOpenDynaset) If Not t.EOF Then t.Edit t!Libelle = "Test" t.Update endif t.Close Set t = Mdb.OpenRecordset(r$, dbOpenDynaset) If Not t.EOF Then t.Edit t!Libelle = "Nouveau Test" t.Update endif t.Close Mdb.close
Quelqu'un peut-il m'expliquer pourquoi cela passe avec Access et pas avec MySQL, bien que le recordset soit fermé entre les deux passages, et surtout comment faire pour me sortir de là. C'est la première fois que j'utilise MySQL.
Mes délais pour migrer l'application sont très courts, c'est donc très urgent.
Merci pour votre aide.
Partager