AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datensatz Sperre MySQL

Ein Thema von KlausV · begonnen am 6. Dez 2022 · letzter Beitrag vom 9. Mai 2023
Antwort Antwort
KlausV

Registriert seit: 29. Aug 2017
Ort: 68809 Neulußheim
88 Beiträge
 
Delphi 7 Professional
 
#1

AW: Datensatz Sperre MySQL

  Alt 8. Mai 2023, 14:06
Ich versuche es mal zu erklären, hoffe aber, dass ich es einigermaßen brauchbar wiedergeben kann. Ist leider schon lange her, wo ich mit Delphi zu tun hatte.
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
Das widerspricht aber deutlich der Beschreibung aus dem Eingangspost:
Zitat von KlausV:
Ich habe ein Grid. In diesem Grid werden Datensätze angezeigt. Es gibt eine Checkbbox im Grid, die offen für die Verwaltung ist. Die zugehörige TQUERY Komponente hat die Eigenschaft RequestLive TRUE. Dadurch kann ich direkt im Grid in die Datenbank schreiben. Nun hake ich den ersten Satz an, das funktioniert und dann den zweiten und dann kommt die Fehlermeldung, aber nicht immer. Mir ist dabei aufgefallen, dass nach dem ersten click noch keine Änderung in der DB vollzuogen ist, erst beim 2. click, der aber ja nicht funktioniert, weil die Fehlermeldung kommt.
Um was für ein Grid handelt es sich?

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.
Sorry, die Situation zwischen dem Eingangsfehler und der jetzigen Situation ist eine andere (wie beschrieben zuvor). Den Eingangsfehler habe ich durch den UpdateMode gelöst. Ich möchte aber nicht, in allen Queries den UpdateMode verändern, kann ja auch irgendwie nicht sein. Die Fehlermeldung ist die selbe. Ja, es ist ein dbGRID.
Ich verstehe immer noch nicht, wieso es bis vor wenigen Wochen funktioniert hat.
----------------------------------------------
Klaus

Geändert von KlausV ( 8. Mai 2023 um 14:13 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.602 Beiträge
 
Delphi 7 Professional
 
#2

AW: Datensatz Sperre MySQL

  Alt 8. Mai 2023, 15:27
Ich verstehe immer noch nicht, wieso es bis vor wenigen Wochen funktioniert hat.
Es wurde halt irgendwas verändert, das muss weder auf der Datenbank noch in Deinem Programm der Fall sein.

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.
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.257 Beiträge
 
Delphi 12 Athens
 
#3

AW: Datensatz Sperre MySQL

  Alt 9. Mai 2023, 06:31
Es wurde halt irgendwas verändert, das muss weder auf der Datenbank noch in Deinem Programm der Fall sein.
Ja, das kann auch mit den Daten zu tun haben. Eben zb Floats, die durch Rundung beim Schreiben andere Werte als beim Lesen enthalten.

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.
  Mit Zitat antworten Zitat
KlausV

Registriert seit: 29. Aug 2017
Ort: 68809 Neulußheim
88 Beiträge
 
Delphi 7 Professional
 
#4

AW: Datensatz Sperre MySQL

  Alt 9. Mai 2023, 08:10
Es wurde halt irgendwas verändert, das muss weder auf der Datenbank noch in Deinem Programm der Fall sein.
Ja, das kann auch mit den Daten zu tun haben. Eben zb Floats, die durch Rundung beim Schreiben andere Werte als beim Lesen enthalten.

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.
Das kann ich nicht, weil es kein direktes SQL Statement gibt. Es wird über RequestLive alles gehandelt. Wir kommen wieder zurück zum Ursprung, ich muss wissen, welche SQL's delphi intern absetzt.
----------------------------------------------
Klaus

Geändert von KlausV ( 9. Mai 2023 um 08:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.257 Beiträge
 
Delphi 12 Athens
 
#5

AW: Datensatz Sperre MySQL

  Alt 9. Mai 2023, 08:43
Ja, eben, du musst dir die SQL Statements ansehen, die Delphi zusammenbaut. Und dazu musst du mySQL Server einen Trace mitlaufen lassen. Bzw kannst du dich wenn ich das richtig im Kopf habe auch in das Tdatabase oder Tconnection Objekt reinhängen, aber das habe ich jetzt nicht im Kopf. Ich habe mir das immer direkt am Server unabhöängig von Delphi angesehen.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 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