
Row in use by another. Retrying lock
"Ligne en cours d'utilisation par un autre. Retenter le
verrouillage"
Q 1: En travaillant avec des tables MySQL sur
un formulaire dbase et quand j'essaie d'utiliser le bouton "modifier" avec un
simple code BeginEdit j'obtiens ce message d'erreur et ne suis pas en mesure d'apporter
des modifications aux données déjà saisies dans le tableau. J'utilise un datamodref
pour mon accès à ces tables.
R 1 par Claus Mygind
:
Cela se produit lorsque vous que vous utilisez .Save() après un .Append(). Un verrou
est mis sur la table qui n'est pas éliminé.
Vous n'utilisez probablement pas les webclass.cc, mais voilà comment j'ai modifié la
classe personnalisée dans la section mise à jour pour contourner ce problème. Remarquez
que je continuer à utiliser le .save () sur le .append() mais pour des modifications
j'utilise la "mise à jour " dans un SQL.
if bAppend
rf.parent.save()
// save row
else
/*
Use update
instead of save for edited records.
*/
q.requestlive = false
q.active = true
q.sql = [update
]+cTableName+[ set ]+cSet+[ where ]+cWhere+[]
q.requery()
q.active = false
endif |
Une autre façon de contourner est d'utiliser le .executeSQL([update ....])
Voici un exemple de comment cela pourrait fonctionner.
(Vous pouvez aussi l'utiliser pour "insert" lors de l'ajout d'enregistrements)
" db.executeSQL([update jBook set ]+cSet+[
where jobId = ']+cJobId+['])" |
retour
Sources :
Aide dBase Plus 2.6.0
Q1
From: "gloria" <ggerema@yahool.com>
Newsgroups: dbase.programming
Sent: Monday, May 31, 2010 3:09 PM
Subject: error, row in use by another.Retrying lock |
|
|
|
Retour à l'accueil
Les informations de cette page sont données à titre indicatif et ne se substituent
pas à celles contenues dans l'Aide de votre version de dBase qui reste la meilleure
documentation.
Si vous voyez des erreurs, ou souhaitez apporter des compléments, n'hésitez pas à le signaler.
Dernière modification : mercredi 06 octobre 2010
© M.Abraham.
|