Moin,
ich bin hier neu im Forum und Einsteiger in Lazarus.
Das Forum hat mir schon mehrmals geholfen. Aber für mein jetziges Problem habe ich keine Lösung gefunden. Ich befürchte, es ist nur ein dummer Anfängerfehler!
Da ich mir eine Datenbank programmieren will bin ich mit Lazarus, Firebird und Zeos gestartet:
Windows 10
Lazarus 2.0.10
Firebird 3.0.6
Zeos 7.2.6
Zum Einstieg habe ich auf eine Form TDBGrid, TDBEdit undTDBNavigator gelegt, womit ich über die Komponenten ZConnection, ZQuery und DataSource embedded auf Employee.FDB zugreife.
Im Entwurfmodus funktioniert alles bestens. TDBGrid zeigt mir die Daten an und ich kann auch über ZQuery die Daten sortieren. Auch TDBEdit zeigt mir die ausgewählten Daten an.
Das Programm kann ich ohne Fehlermeldungen erfolgreich kompilieren. Es werden dann aber keine Daten mehr angezeigt, weder in TDBGrid noch in TDBEdit. In TDBGrid werden nur die Spaltenbezeichnungen angezeigt, die ich unter Columns ausgewählt habe. TDBNavigator wir nur in Grau angezeigt (wie deaktiviert), aber die Hints werden angezeigt.
Ich weiß nicht mehr weiter. Vor allem verstehe ich nicht, warum die Daten im Endwurfsmodus angezeigt werden und dann in Programm nicht mehr.
Als Anfänger wäre ich euch „Alten Hasen“ für Hilfe sehr dankbar.
MfG,
Willi
Keine Datenanzeige im DBGrid
Re: Keine Datenanzeige im DBGrid
Bitte klicke für uns ein kleines Demo-Projekt zusammen und poste dieses (die *.pas, *.lfm, *.lpi, *.lpr Dateien, sowie die Datenbank-Datei in ein zip packen und dieses hier unter "Dateianhänge" hochladen), so dass wir das Problem nachvollziehen können.
- af0815
- Lazarusforum e. V.
- Beiträge: 6780
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Keine Datenanzeige im DBGrid
Grundlegend, hast du Treiber um Lazarusverzeichnis, die im Verzeichnis deines Programmes nicht vorhanden sind.
Hintergrund: In Lazarus werden die Treiber aus dem Lazaruverzeichnis verwendet, zur Laufzeit die aus dem Verzeichnis wo sich die kompilierte Exe befindet.
Weiterer Test, die Applikation von der Kommandizeile starten, die sagt einem auch öfters was fehlt.
Auch etwas beliebtes, wird die connection zur Laufzeit geöffnet ?
Hintergrund: In Lazarus werden die Treiber aus dem Lazaruverzeichnis verwendet, zur Laufzeit die aus dem Verzeichnis wo sich die kompilierte Exe befindet.
Weiterer Test, die Applikation von der Kommandizeile starten, die sagt einem auch öfters was fehlt.
Auch etwas beliebtes, wird die connection zur Laufzeit geöffnet ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Keine Datenanzeige im DBGrid
Moin,
vielen danke für eure schnelle Antwort und Entschuldigung für meine später – beruflich bedingte – Reaktion.
@af0815: Ich hatte mein Programm in einem anderen Verzeichnis. Der Fehler tritt aber auch auf nachdem ich alles ins Lazarus gepackt habe.
@wp_xyz
Die Dateien habe ich als Zip-Dateien angehängt. Vielleicht findet ja jemand die Lösung!
Willi
vielen danke für eure schnelle Antwort und Entschuldigung für meine später – beruflich bedingte – Reaktion.
@af0815: Ich hatte mein Programm in einem anderen Verzeichnis. Der Fehler tritt aber auch auf nachdem ich alles ins Lazarus gepackt habe.
@wp_xyz
Die Dateien habe ich als Zip-Dateien angehängt. Vielleicht findet ja jemand die Lösung!
Willi
Re: Keine Datenanzeige im DBGrid
Du hast (richtigerweise) die ZConnection nach der Design-Arbeit getrennt (ZConnection1.Connected = false) aber in deinem Code wird diese zur Laufzeit nirgendwo mehr aktiviert.
Also das einfügen:
Hier wird allerdings vorausgesetzt, dass das Datenmodul schon existiert, wenn Form1 erzeugt wird. Das erreichst du am einfachsten, indem du das Datenmodule in den Projektoptionen, Seite Formualre, in die Liste der automatisch erzeugten Formulare klickst und mit den Pfeil-Buttons über das Form1 schiebst.
Also das einfügen:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
Datamodule1.ZConnection1.connected := true;
Datamodule1.ZQuery1.Active := true;
end;
Re: Keine Datenanzeige im DBGrid
Moin,
das ist die Lösung. Ich hatte ja gleich vermutet, dass ich einen typischen Anfängerfehler gemacht habe.
Vielen Dank!!
Willi
das ist die Lösung. Ich hatte ja gleich vermutet, dass ich einen typischen Anfängerfehler gemacht habe.
Vielen Dank!!
Willi