VB et MySQL - Modification d'un enregistrement
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:
Code:
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 |
Le problème est identique si je veux modifier deux enregistrements différents au sein du même recordset!
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.