sqldb
Re: sqldb
Dann poste doch mal das Projekt oder noch besser ein minimiertes Bsp (als Zip), sonst raten alle nur ins Blaue...
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: sqldb
das würde ich auch sagen, denn deine Fehlermeldung ist ganz eindeutig:Michl hat geschrieben:Dann poste doch mal das Projekt oder noch besser ein minimiertes Bsp (als Zip)
Es gibt Fieldnames die dein select nicht bedient. Und irgendwo müssen die definiert sein, evtl. in der Query?
Re: sqldb
ich habe jetzt durch Eure Tips festgestellt, woran es liegen kann. Der User kann auf einer Form in einem dbgrid wählen, ob er einen neuen Datensatz eingeben oder einen bereits vorhandenen Datensatz auswählen möchte. Sucht er einen vorhandenen Datensatz öffnet sich das Grid mit Name, Vorname, Geburtsdatum. Durch Klick in eine Zeile öffnet sich eine neue Form mit dem ausgewählten Datensatz, wobei jetzt weitere dbedit-Felder mit Angaben zu diesem Patienten gezeigt werden (Patnr, Aufnahmedatum, Entlassungsdatum usw.). Ich hatte alle dbedit-Felder im Objektinspektor mit den Datenbankfeldern verbunden. Wenn ich jetzt in der ersten Form meine select-Abfrage (Name, Vorname, Geburtsdatum) starte, dann werden den anderen dbedit-Feldern in der zweiten Form nicht mehr die geforderten Werte zugewiesen und es kommt zu der Fehlermeldung. Ich hatte die Verbindungen der dbedit-Felder zu den Datenbankfeldern gelöscht, dann funktionierte die select-Abfrage. Ich stelle jetzt die Verbindungen der dbedit-Felder mit den Datenbankfeldern zur Laufzeit her. Dann funktioniert es. Das kommt mir irgendwie sehr umständlich vor, aber es funktioniert wenigstens. Ich bin Euch allen für Eure Tips sehr dankbar!!!
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: sqldb
@hde, kannst mir den Fehler mal erklären ?
Ist auf der 2. Form die ID mit drauf oder was ?
Ist auf der 2. Form die ID mit drauf oder was ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: sqldb
Wenn er auf der zweiten Form DBEdits mit der Datasource der ersten Form verbindet und Fieldnames einträgt, dann muss der Select (die Query) der die Datasource (und damit auch die DBEdits der zweiten Form) beliefert auch die Values dieser Fieldnames liefern, sonst kommen die in der Frage genannten Fehlermeldungen. Da ist es dann völlig egal welche SQL-Tools er einsetzt.Christian hat geschrieben:@hde, kannst mir den Fehler mal erklären ?
Ist auf der 2. Form die ID mit drauf oder was ?
hde
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: sqldb
Das war mir schon klar, ich geh aber davon aus das er die ID auch auf der 2. Form nicht braucht. Sonst müsste er sie ja in die Abfrage mit aufnehmen was er ja aber nicht will.
Aber genau das war der Denkfehler ja ?
Dann ist es vllt die beste Lösung ein eigenes Query auf der 2. Form einzusetzen.
Aber genau das war der Denkfehler ja ?
Dann ist es vllt die beste Lösung ein eigenes Query auf der 2. Form einzusetzen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: sqldb
Natürlich kann er auch eine zweite Query nehmen. Ob die nun auf der ersten oder zeiten Form oder einem Datamodul steht ist dabei egal.Christian hat geschrieben:Dann ist es vllt die beste Lösung ein eigenes Query auf der 2. Form einzusetzen.
Es reicht aber auch, wenn er zwei Datasource einsetzt. Eines zum DBGrid und das andere zu den DBEdits. Er muss dann dynamisch nur immer das eine oder andere mit der Query verbinden. Das ist Geschmackssache.
Ich nehme meist für die DBGrids und die DBEdits getrennte Queries. Weil das sauber ist und ich eh für DBGrids meist selects mit joins verwende.
hde
Re: sqldb
Viele Wege führen nach Rom.
aber wenn er in verschiedenen selects unterschiedliche Felder abfragt und in DBEdits anzeigen will braucht er entweder mehrere Forms oder muss etwas code schreiben. Nur bei reinem DBGrid ist's etwas einfacher, nur der nimmt automisch die Felder aus der Query, DBEdit eher nicht.

aber wenn er in verschiedenen selects unterschiedliche Felder abfragt und in DBEdits anzeigen will braucht er entweder mehrere Forms oder muss etwas code schreiben. Nur bei reinem DBGrid ist's etwas einfacher, nur der nimmt automisch die Felder aus der Query, DBEdit eher nicht.