Query: Felder bearbeiten

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Query: Felder bearbeiten

Beitrag von Aliobaba »

Hallo,

Mir gelingt es nicht, in einer neu erstellten Query Datenbankfelder anzulegen.
Beim Rechtsklick auf das Ikon (Felder bearbeiten) erscheint der Text:
Es war nicht möglich, die Liste der Felder des Datasets zu lesen.
Prüfe Dataset Einstellungen
SQL-logic Error

Der selbe SQL-Fehler erscheint, wenn man versucht, die Query "Active" zu schalten

Unter "Eigenschaften: SQL" steht definitiv ein korrekter SQL-Befehl. (per SQL-Editor getestet)
In meinem Projekt arbeite ich mit mehreren Fenstern, es existieren auch auf zwei anderen Fenstern funktionierende Querys, die auf dieselbe ZConnection zugreifen. Die Einstellungen der anderen Querys ist identisch mit der nicht funktionierenden Query, ebenso die Einstellungen der anderen TDataSource-Ikons.
Zur Laufzeit erscheint beim Öffnen der Datenbank kein(!) Fehler. Aber es fehlen der Query halt die Felder.
Die dabei verwendete Prozedur:

Code: Alles auswählen

Procedure Standard_Datenbank_starten_und_aufrufen;  // DB wird gestartet
begin
 Form_Start.ZConneu.Database:= PChar( Pfad_DB_File ) ;
 Form_Start.ZConneu.Connected:=true;

 Ffufe.ZQueryFundus1.Active:=true;  // anderes Fenster
 Ffufe.DataSourceFundus1.Enabled:=true;
 Fhfe.ZQueryPlaylist1.Active:=true;   // anderes Fenster
 Fhfe.DataSourcePlaylist1.Enabled:=true;

 F_TSV.ZQueryTSV1.Active:=true;   // Diese Query und dieses Dataset macht die Probleme,
 F_TSV.DataSourceTSV1.Enabled:=true; //  aber nicht zur Laufzeit!
end;                                
Verwendete Datenbank: SQLite unte Zeos
Seltsam ist, dass ich immer wieder mal mit diesem Fehler kämpfe und meist funktioniert das dann irgendwann, ohne dass ich nachvollziehen kann, warum es dann funktioniert. Gestern Abend zum Beispiel funktionierte es z.B. nach einem Neustart des Betriebssystems. Das habe ich heute natürlich auch schon versucht: Heute ohne Erfolg. :?

Gruß und schönes Wochenende!
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: Query: Felder bearbeiten

Beitrag von Aliobaba »

... was mir gerade noch auffällt:
Wenn ich in der TZconnection im Objektinspektor unter Database den Pfad zur SQL-Datenbank-Datei angebe, dann ist dieser Pfad-Eintrag bei einem Neustart des Programms "Lazarus" wieder verschwunden???

Noch eine kleine Anmerkung: Schade, dass man "Showmessage"-Ausgaben in der Windows Version von Lazarus nicht mit
Strg-C->Strg-V
speichern kann. Mit der Linux-Version funktioniert das schon.
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Benutzeravatar
gladio
Beiträge: 217
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 64Bit
Wohnort: Rügen

Re: Query: Felder bearbeiten

Beitrag von gladio »

Du kannst die Felder nur "automatisch" einfügen, wenn die Datenbank zur Designzeit verbunden ist.
Das kann man im Objektinspektor der ZConnection einstellen DesignConnection und du mußt den korrekten LibraryLocation - Pfad zur SQLite.dll oder *.so eintragen.
Ist ein bisschen Fummelei und Ausprobieren.

Im Programm (am besten im Datamodule onCreate oder ZConnection-BeforeConnect) muss dann aber die Einstellung für die Laufzeit gesetzt werden.

Du kannst die Felder auch manuell anlegen, mach ich meistens.
Doppelklick auf die ZQuery und dann das dritte Symbol von links "Neues Feld an aktueller Position einfügen" dann "Daten" wählen.
Dazu mußt du wissen, wie die Felder heißen und wie sie definiert sind.

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: Query: Felder bearbeiten

Beitrag von Aliobaba »

... tja, ich machte soeben eine kleine Pause.
zuletzt habe ich im Objektinspektor bei DataSource eine Eingabe gemacht.
Es kam eine Fehlermeldung : zirkulär Reference (oder so).
Dann wollte ich den Eintrag wieder löschen, dies führte zum Absturz von Lazarus.
-> Task Manager -> Restartvon Lazarus

und nun funktioniert die Eingabe der Felder.
????? egal, jetzt funktioniert es! Aber seltsam ist das schon.
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: Query: Felder bearbeiten

Beitrag von Aliobaba »

Hallo gladio,
sehe jetzt erst Deinen Beitrag und bin trotzdem erst einmal froh, dass nun alles funktioniert.
Die "Design-Connection" war eigentlich immer mit Häkchen und verursachte keine Fehler.
"Library-Connection" ist leer war eigentlich stets immer leer. Aber dieser Hinweis könnte wichtig sein, wenn dieses Phänomen wieder mal auftritt.
Danke!
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Antworten