![]() |
AW: Datensatz Sperre MySQL
upWhereKeyOnly hat den Vorteil, dass Fehler nur bei (durch andere User verursachte) Änderungen an Schlüsselwerten auftreten. Hat den Nachteil, dass bei unveränderten Schlüsseln ggfls. zwischenzeitlich durchgeführte Änderungen an Nichtschlüsselwerten gnadenlos überschrieben werden.
Die Frage ist also: Was will man hier genau erreichen? Vor dem Speichern eine absolut exakte Prüfung auf Änderungen oder reicht es, wenn man "den richtigen Datensatz erwischt". Frei nach dem Motto: Die letzte Änderung gewinnt? |
AW: Datensatz Sperre MySQL
UpdateKeyOnly wird in der Regel auch viel schneller sein, weil es da Indices drauf gibt, andernfalls hast du im WHERE ja Felder, die uU einen FullTableScan erfordern. Aber das ist jetzt ein anderes Thema.
|
AW: Datensatz Sperre MySQL
Zitat:
Das Problem tritt nicht bei einem Grid auf, sondern im Einzelbild der Verwaltung. Sprich es gibt ein Grid und mit doppelklick gelange ich auf das Einzelbild. Verändere ich dort meine Werte und drücke auf speichern, tritt der Fehler auf. Auf dem Screen ist ein ganz normales TQUERY Objekt benutzt (RequestLive=ON). Der Fehler tritt im BeforePost event auf. Andere Frage: Welchen profiler kann ich installieren? Bitte den link dazu, wenn möglich. Danke. Klaus |
AW: Datensatz Sperre MySQL
|
AW: Datensatz Sperre MySQL
Zitat:
Zitat:
Ein DBGrid? Da kann ein Doppelklick durchaus zu einer Veränderung führen (z. B. bei 'ner CheckBox im DBGrid), wenn auch unbeabsichtigt. Und das kann zu dem von Dir genannten Problem führen, muss aber nicht. |
AW: Datensatz Sperre MySQL
Zitat:
Ich verstehe immer noch nicht, wieso es bis vor wenigen Wochen funktioniert hat. |
AW: Datensatz Sperre MySQL
Zitat:
|
AW: Datensatz Sperre MySQL
Zitat:
Du programmierst mit Delphi 7, so wie es in Deinem Profil steht? TQuery lässt auf einen Zugriff über die BDE schließen, die ist jetzt nicht mehr unbedingt das Neueste vom Neuesten, oder eher absolut veraltet (und das sagt jetzt einer, der nur mit Delphi 7 programmiert ;-)). Irgendeine Änderung am Betriebssystem, so dass z. B. das Doppelklickverhalten verändert wurde. Eventuell wird ja ein Doppelklick im DBGrid, bei 'ner Checkbox, ..., nun wie zwei einzelne Klicks verarbeitet, was dann ggfls. zu zwei sehr kurz hineinander durchgeführten Änderungen führen, die aber im Konflikt zueinander stehen. Änderungen an der Konfiguration des ODBC-Treibers, Änderungen an der Konfiguration der BDE, ... Wegen Problemen mit der BDE bin ich längst auf die ADO-Komponenten umgestiegen (bzw. die ZeosLib). Die ADO-Komponenten können direkt auf den ODBC-Treiber zugreifen, die Zwischenschicht der BDE kann also ersatzlos entfallen. Der Umbauaufwand dürfte sich in Grenzen halten, könnte sogar kürzer sein, als der Aufwand, den Du bis jetzt schon in die Fehlersuche und Fehlerbehebung gesteckt hast. Der Fehler liegt aber (mit an Sicherheit grenzender Wahrscheinlichkeit) nicht auf der Datenbankseite. |
AW: Datensatz Sperre MySQL
Zitat:
Schau dir die SQL Statements der UPDATEs an und dort die WHERE Klausel bei UpdateWhereChanged, dann weißt du in 1 Minute was los ist. |
AW: Datensatz Sperre MySQL
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz