Hallo Forum.
Nachdem die Verbindung zu MYSQL/MariaDB nicht funktionierte, habe ich mich mit SQLITE beschäftigt.
Ich hab eine kleine Tabelle angelegt. Diese wird gelesen (Dataset ist gefüllt), aber nicht ins DBGrid ausgegeben.
SQLite3Connection1.Open;
SQLite3Connection1.Connected := True;
SQLTransaction1.DataBase := SQLite3Connection1;
SQLQuery1.DataBase := SQLite3Connection1;
SQLTransaction1.Active := True;
SQLQuery1.SQL.Clear;
Dbgrid1.Clear;
SQLQuery1.SQL.Text := 'SELECT * FROM Beitragsarten';
SQLQuery1.Open;
DataSource1.DataSet := SQLQuery1;
DataSource1.DataSet.Active := true;
// Wenn ich das in der Schleife prüfe, sind die Felder gefüllt. //<<<----
// while not Datasource1.Dataset.Eof do begin
DBGrid1.DataSource := DataSource1;
//showmessage(Datasource1.Dataset.FieldByName('Bezeichnung').AsString); // Inhalt ist korrekt
DBGrid1.AutoFillColumns := True; //<<<---- Hier wird das Grid gefüllt ???
// Datasource1.Dataset.next;
// end;
Datasource1.free;
SQLQuery1.Close;
DBGrid aus SQLite füllen
-
Johannes55
- Beiträge: 5
- Registriert: Mo 23. Feb 2026, 17:20
-
charlytango
- Beiträge: 1234
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: DBGrid aus SQLite füllen
Um dir qualifiziert helfen zu können, ist ein Testprojekt immer eine gute Idee.
Dafür gibt es eine Funktion in Lazarus, die alle nötigen Dateien zur Verfügung stellt.
Menü: Project - Publish Project.
Wenn du im aufpoppenden Fenster noch die Endung deiner Datenbankdatei angibst wird auch diese samt allen nötigen Dateien in ein Zip eingepackt das du hier einstellen kannst.
https://lazarus-ccr.sourceforge.io/docs ... lumns.html
Das eigentliche Problem liegt woanders -- vermutlich in der Art zu denken.
Du Setzt ein Klick-Event eines Buttons ein, das ja komplett durchläuft.
Folgendes passiert also:
die DB wird geöffnet, die Verbindungen zum Grid hergestellt, die Query wird geöffnet, aber hier
Der DBGrid kann nichts anzeigen wenn die Datenquelle geschlossen ist.
Ach ja --> SELECT * bringt dich schnell in Teufels Küche
Beiliegend findest du ein lauffähiges Beispiel das einige Situationen darstellt.
Tip:
Pack deine Datenverbindung in ein Datenmodul, damit sie nicht jedesmal in einem Formular neu erstellt werden muss.
Die allermeisten Datenbankapplikationen brauchen nur eine Verbindung zum Server. Jedem Formular seine eigene Verbindung zu spendieren frisst Speicher - und das auch auf der Serverseite.
Dafür gibt es eine Funktion in Lazarus, die alle nötigen Dateien zur Verfügung stellt.
Menü: Project - Publish Project.
Wenn du im aufpoppenden Fenster noch die Endung deiner Datenbankdatei angibst wird auch diese samt allen nötigen Dateien in ein Zip eingepackt das du hier einstellen kannst.
Nein, der Grid wird (die richtigen Verbindungen vorausgesetzt) mit dem öffnen der Datenquelle gefüllt -- das hat nur etwas mit der Spaltenbreite zu tun.Johannes55 hat geschrieben: Do 26. Feb 2026, 17:44 DBGrid1.AutoFillColumns := True; //<<<---- Hier wird das Grid gefüllt ???
https://lazarus-ccr.sourceforge.io/docs ... lumns.html
Das eigentliche Problem liegt woanders -- vermutlich in der Art zu denken.
Du Setzt ein Klick-Event eines Buttons ein, das ja komplett durchläuft.
Folgendes passiert also:
die DB wird geöffnet, die Verbindungen zum Grid hergestellt, die Query wird geöffnet, aber hier
wird in einem Rutsch gleich wieder alles geschlossen.Johannes55 hat geschrieben: Do 26. Feb 2026, 17:44 Datasource1.free;
SQLQuery1.Close;
// Transaktion bestätigen
SQLTransaction1.Commit;
Showmessage('Ende');
Der DBGrid kann nichts anzeigen wenn die Datenquelle geschlossen ist.
Ach ja --> SELECT * bringt dich schnell in Teufels Küche
Beiliegend findest du ein lauffähiges Beispiel das einige Situationen darstellt.
Tip:
Pack deine Datenverbindung in ein Datenmodul, damit sie nicht jedesmal in einem Formular neu erstellt werden muss.
Die allermeisten Datenbankapplikationen brauchen nur eine Verbindung zum Server. Jedem Formular seine eigene Verbindung zu spendieren frisst Speicher - und das auch auf der Serverseite.
- Dateianhänge
-
SQLite_Easy.zip- (495.6 KiB) 28-mal heruntergeladen
-
charlytango
- Beiträge: 1234
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: DBGrid aus SQLite füllen
da gibt es noch eine neuere Version 
- Dateianhänge
-
SQLite_Simple2.zip- (529.57 KiB) 18-mal heruntergeladen