Hallo,
Tyreal
Zitat:
Und was willst du in der Datenbank aktualisieren mit einem SELECT?
SELECT macht in zusammen mit CommitTrans keinen Sinn.
Doch, macht es, wenn z.B. mehrere Selects ausgeführt werden.
Jede Aktion läuft ja in einer Transaktion, ob man es will oder nicht
(egal ob select/insert/update).
Ja nach benutztem
DB-Framework gibt es noch automatische Transaktionen.
Um zu verhindern, dass pro Select eine Transaktion gestartet wird,
schreibt man das StartTransaction selber.
Firebird ist ein schönes Bsp.
Benutze ich autocommit (
Bde,FIBPlus, Zeos ?),
werden ein Haufen Transaktionen erzeugt,
auch wenn ich nur Selects mache, das Programm wird langsamer.
Zum Thread-Ersteller:
Der
MySQL-Engine-Typ fehlt noch.
Zitat:
Wenn nämlich in der zwischenzeit von Außen jemand Änderungen in der Datenbank gemacht hat
Wer macht denn die Änderungen, dein eigenes Programm (auf einem anderen Recher?).
Zu der Fehlermeldung gibt es per Google doch eindeutige Aussagen.
Dein Programm erzeugt
DB-Anweisungen, die nicht mit
MySQL kompatibel sind.
Du musst erst mal rausbekommen, welche
Query das direkt ist,
z.B. indem du mal alle Schreibzugriffe rasukommentierst
und dann schrittweise wieder reinnimmst.
Zitat:
"Ich kann das Programm nicht ändern"
Dann kannst du
MySQL als
DB nicht verwenden ...
Zum Engine-Typ:
Ist das InnoDB, werden Transaktionen unterstützt.
Um Änderungen zu sehen, die ein anderes Programm (oder dein eigenes mit anderer Connection)
gemacht hat, musst du mit Transaktionen arbeiten.
Heiko