Einzelnen Beitrag anzeigen

rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: DBLookup und Insert / Append

  Alt 6. Dez 2023, 10:38
Moin,

ich habe jetzt eine neue, eigenständige Anwendung mit einer MainForm und 2 Fenster geschrieben, die auf zwei kleine Test-Tabellen gehen.

Fenster 1: Ein DBGrid mit der Anzeige der Tabellendaten. Dazu ein DB-Edit-Feld bei dem die Bereitstellung der Daten automatisch durch die Komponente erfolgt. Die DBLookUpComboBox wird über den Mechanismus innerhalb der im Objektinspektor eingestellten Werte automatisch versorgt. Die Steuerung erfolgt über einen DBNavigator, der mit der Tabelle, die auch das DBGrid füllt, verbunden ist.

Ergebnis: Im Prinzip alles ok!
Beim Anlegen eines neuen Datensatz über plus (+) im Navigator werden alle Felder gelöscht. Klickt man in das Edit-Feld werden allerdings fälschlicherweise die Daten des aktiven Datensatzes eingetragen. Erst beim zweiten Kick auf das Plus-Zeichen im DBNavigator, erhält man eine neue Satz-ID und kann den Satz tatsächlich eintragen - inklusive richtiger Verarbeitung der Daten der DBLookUpComboBox.

Fenster 2: Ein DBGrid mit der Anzeige der Tabellendaten. Dann ein Editfeld und die DBLookUPComboBox wie oben. Hinzu kommen ein Button für Neu-Anlage und ein Button für Speichern. Über eine boolsche Variable wird gesteuert, das es sich um einen neuen Satz handelt. Diese Variable wird beim Speichern ausgewertet, ob ein INSERT oder ein UPDATE benötigt wird.

Ergebnis: Der ursprüngliche Fehler tritt wieder auf. Offensichtlich wird beim neuen Datensatz das Verhalten der DBLookUpComboBox, über die Einstellung im DataSource.OnDataChange, negativ beeinflusst.

Anschließend habe ich die Aktualisierung der Daten aus der DataSource.OnDataChange herausgenommen und die Aktualisierung auf einen DbGrid.OnCellClick gelegt.Fehler weg!

Nicht so schön mit der Aktualisierung, aber das Grundproblem ist damit weg!

Fals jemand das Coding haben will, kann ich das gerne, inkl. der Testdatentabellen, bereitstellen.
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat