Keine Datenanzeige im DBGrid

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Uhu219
Beiträge: 3
Registriert: Fr 6. Nov 2020, 17:38

Keine Datenanzeige im DBGrid

Beitrag von Uhu219 »

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

wp_xyz
Beiträge: 3434
Registriert: Fr 8. Apr 2011, 09:01

Re: Keine Datenanzeige im DBGrid

Beitrag von wp_xyz »

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.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4367
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Keine Datenanzeige im DBGrid

Beitrag von af0815 »

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 ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Uhu219
Beiträge: 3
Registriert: Fr 6. Nov 2020, 17:38

Re: Keine Datenanzeige im DBGrid

Beitrag von Uhu219 »

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
DBTest1.zip
(134.18 KiB) 20-mal heruntergeladen

wp_xyz
Beiträge: 3434
Registriert: Fr 8. Apr 2011, 09:01

Re: Keine Datenanzeige im DBGrid

Beitrag von wp_xyz »

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:

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
begin
  Datamodule1.ZConnection1.connected := true;
  Datamodule1.ZQuery1.Active := true;
end; 
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.

Uhu219
Beiträge: 3
Registriert: Fr 6. Nov 2020, 17:38

Re: Keine Datenanzeige im DBGrid

Beitrag von Uhu219 »

Moin,

das ist die Lösung. Ich hatte ja gleich vermutet, dass ich einen typischen Anfängerfehler gemacht habe.

Vielen Dank!!

Willi

Antworten