Zitat von
marabu:
Ich habe den thread erst jetzt genau durchgelesen. Andreas hat klar erkannt, wenn du die
Query dynamisch erstellst, dann müssen alle Felder per Code persistent gemacht werden. Ohne eine Routine wie CreateAllFields() kannst du gar nicht anfangen zu testen.
marabu
Hallo Marabu,
du hast jetzt in deinem Beispiel diese 'CreateAllFields()' auch nicht verwendet.
Ich habe jetzt jedenfalls mal versucht dein Beispiel in mein Programm einzubauen. Wenn ich dann den 'Open' für meine
Query ausführe, bekomme ich die Fehlermeldung
Zitat:
Feld 'ID_Mitglied' nicht gefunden.
So heißt mein 'KeyField' in 'FQry'. Und da ich mit '*' selektiere müßte es eigentlich da sein.
Ist dies jetzt z.B. so ein Fall, daß die anderen Felder nicht mit 'CreateAllFields' erzeugt wurden?
Ich habe beim Testen vorm 'Open' nachgesehen, in der FieldDefs-Liste sind alle 16 Spalten meiner Tabelle, aber in der Fields-Liste steht nur das Lookup-Feld. Wenn ich das jetzt richtig interpretiere, muß ich vorm erzeugen des Lookup-Feldes noch
Zitat:
- vor dem Aufruf vom FieldDefs.Update muss noch FieldDefs.Updated auf false gesetzt werden -
Die Eigenschaft 'FieldDefs.Updated' kennt Delphi unter 2.0 anscheined noch nicht, hab mal einfach
Delphi-Quellcode:
FQry.FieldDefs.Clear;
FQry.FieldDefs.Update;
probiert, aber der Erfolg bzw. Mißerfolg bleibt derselbe. Mein KeyField 'ID_Mitglied' kennt Delphi nicht.
Gruß