AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DBLookup und Insert / Append
Thema durchsuchen
Ansicht
Themen-Optionen

DBLookup und Insert / Append

Ein Thema von rokli · begonnen am 3. Dez 2023 · letzter Beitrag vom 6. Dez 2023
Antwort Antwort
rokli

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

AW: DBLookup und Insert / Append

  Alt 5. Dez 2023, 11:06
Hallo und sorry, dass ich jetzt erst schreibe .. war viel zu tun.

Die Referenzen in den Tabellen bekommen immer gleiche Namen. iKtoArt (Ertragkonto = 1, Aufwandskonto = 2 und Neutralkonto =3) wird sowohl in der Tabelle tKtoArt (Kontoarten-Tabelle) und tKonto (Konto-Tabelle) verwendet.

Auf der Form:
Es gibt neben den DBLookUpComboBoxen noch ein Grid, was den Inhalt von tAdressen (um beim Beispiel zu bleiben) anzeigt. Daneben gits einige Edit-Felder, die DB-Inhalte anzeigen und über Buttons <neuer Satz>, <speichern> und <löschen> die Software bedienbar machen.
(Ja ich programmiere noch einzelne Daten-Edit-Felder und keine Universal-Grids, in den alles abgewickelt wird.)

Also im DataSource.OnDataChange der Tabelle tAdressen wird das füllen der Edit-Felder ausgelöst. Damit erreiche ich ja, wenn der Satzzeiger im DbGrid bewegt wird, dass die Edit-Felder auf der Maske aktualisiert werden; der Inhalt der DBComboLookUpBoxen kommen ja "von selbst".

@Neumann: Keine DB-Tabelle sieht bei mir tatsächlich wie in tAdresse und tPLZOrt beschrieben aus. Das Beispiel mit PLZ würde ich so, in real, nie ausführen. Daher Beispiel.
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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.642 Beiträge
 
Delphi 12 Athens
 
#2

AW: DBLookup und Insert / Append

  Alt 5. Dez 2023, 11:38
Wie schon gesagt, das passiert in der Regel nicht. Ich kann aber anhand der bisherigen Informationen so nicht sehen, was der Auslöser dafür ist.

Also im DataSource.OnDataChange der Tabelle tAdressen wird das füllen der Edit-Felder ausgelöst.
Sind das denn keine datensensitiven Controls? Bei denen wäre das ja nicht nötig.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
rokli

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

AW: DBLookup und Insert / Append

  Alt 5. Dez 2023, 11:57
das ist korrekt, dass sind TEdit Felder, die über eine Procedure mit Edit1.Text := qryAdressen.FieldByName('Name').AsString z. B. gefüllt werden.

Ich werde das mal auf TDbEdit Felder umbauen und ausprobieren.

Danke, Uwe.
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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.642 Beiträge
 
Delphi 12 Athens
 
#4

AW: DBLookup und Insert / Append

  Alt 5. Dez 2023, 12:01
Ich glaube aber nicht, dass das irgendwas mit dem Problem zu tun hat. War nur eine generelle Frage.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: DBLookup und Insert / Append

  Alt 5. Dez 2023, 13:26
das ist korrekt, dass sind TEdit Felder, die über eine Procedure mit Edit1.Text := qryAdressen.FieldByName('Name').AsString z. B. gefüllt werden.

Ich werde das mal auf TDbEdit Felder umbauen und ausprobieren.
Wäre es nicht sinnvoller die TDBLookupCombobox in eine gewöhnliche umzubauen oder so?
Ralph

Geändert von Jumpy ( 5. Dez 2023 um 13:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.642 Beiträge
 
Delphi 12 Athens
 
#6

AW: DBLookup und Insert / Append

  Alt 5. Dez 2023, 15:29
Wäre es nicht sinnvoller die TDBLookupCombobox in eine gewöhnliche umzubauen oder so?
Was soll daran sinnvoller sein? Ich wäre wesentlich interessierter daran, die Ursache zu finden und zu beheben, als an einem Symptom rumzudoktorn.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
rokli

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

AW: DBLookup und Insert / Append

  Alt 6. Dez 2023, 09: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
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.642 Beiträge
 
Delphi 12 Athens
 
#8

AW: DBLookup und Insert / Append

  Alt 6. Dez 2023, 11:16
Fals jemand das Coding haben will, kann ich das gerne, inkl. der Testdatentabellen, bereitstellen.
Ja, ich wäre interessiert - und sei es nur um die eigentliche Ursache zu ergründen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#9

AW: DBLookup und Insert / Append

  Alt 6. Dez 2023, 15:38
Wäre es nicht sinnvoller die TDBLookupCombobox in eine gewöhnliche umzubauen oder so?
Was soll daran sinnvoller sein? Ich wäre wesentlich interessierter daran, die Ursache zu finden und zu beheben, als an einem Symptom rumzudoktorn.
Ich hatte das so verstanden, dass bisher nicht mit den DB-sensitiven Controls gearbeitet wird sondern mit einfachen TEdits usw. und hab nicht verstanden, wieso für einen Aspekt nun eine TDB-Control hinzukommen sollte. Ging mir nicht um das eigentliche Problem.

Ohne Code zu sehen, allein von der Beschreibung hätte ich halt durch den Mischmasch sowas befürchtet wie das die nicht DB-Controls geleert werden um einen neuen Datensatz eingeben zu können. Die Datasource aber nicht parallel in den Insert-Mode gestellt wird und noch auf dem alten Datensatz verweilt und in dem DB-Control halt daher noch am alten Datensatz gearbeitet wird.
Ralph
  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 19:26 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