Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Fehler bei Unidac/Fastreport (https://www.delphipraxis.net/160661-fehler-bei-unidac-fastreport.html)

fillibuster 25. Mai 2011 08:09

Datenbank: MySQL • Version: 5.1 • Zugriff über: Unidac

Fehler bei Unidac/Fastreport
 
Hallo,

habe im Moment ein Problem, wo ich nicht mehr weiterkomme. Ich kann noch nicht mal wirklich eingrenzen, woran es liegt. Das Programm selber arbeitet im Bezug auf die Datenbankverbindung einwandfrei. Mit folgendem Code versuche ich nun aber den Reportdesigner zu starten:
Delphi-Quellcode:
  if data.reportQuery.Active then data.reportQuery.Close;
  data.reportQuery.SQL.Text := 'SELECT * FROM articles Where number like ''%456%''';
  data.reportQuery.Open;
  frxReport.Clear;
  frxReport.DesignReport;
Der startet auch, aber wenn ich versuche das entsprechende Dataset zu wählen gibt es folgenden Fehler:
Zitat:

#42000Query was empty
Das Dataset (frxDBDataset) ist mit der Query verbunden. Die Verbindung wird zum Server wird beim Programmstart hergestellt. MySQL läuft hier lokal und auf einem Server im Netzwerk.

Richtig komisch: Wenn ich die Query zur Designtime eintrage und das Programm kompiliere geht es. Ich kann aber der Query keinen SQL-String zuweisen. Es wird immer das zur Designzeit eingetragene SQL-Statement ausgeführt?!? Weiß jemand Rat?

Viele Grüße ....

jaevencooler 25. Mai 2011 10:55

AW: Fehler bei Unidac/Fastreport
 
Moin, Moin,

also versuch doch mal folgendes:


if data.reportQuery.Active then data.reportQuery.Close;
data.reportQuery.close; <=== !! Hier zur Sicherheit das Dataset schließen, sonst keine Bearbeitung des SQL
data.reportQuery.SQL.clear; <=== !! Hier erst einmal das bestehende SQl statement löschen

data.reportQuery.SQL.Text := 'SELECT * FROM articles Where number like ''%456%''';
oder
data.reportQuery.SQL.Add('SELECT * FROM articles Where number like ''%456%''');

data.reportQuery.Open;
frxReport.Clear;
frxReport.DesignReport;

fillibuster 25. Mai 2011 11:18

AW: Fehler bei Unidac/Fastreport
 
Hallo,

das bringt leider nix. Es wird immer nur das zur Designzeit eingetragene SQL-Statement ausgeführt.

Viele Grüße ...

ChrisE 25. Mai 2011 12:10

AW: Fehler bei Unidac/Fastreport
 
Hallo fillibuster,

mal ein kurzer Frage: Wann rufst du die Sachen auf, die deinen Query füllen? Ich würde test weise versuchen diese Methode z.B. von FormEvents zu entkoppeln (OnCreate / OnShow), also beispielsweise einen Button zum testen auf das Form legen und dann die Sachen dort ausführen.

Gruß, Chris

fillibuster 25. Mai 2011 12:13

AW: Fehler bei Unidac/Fastreport
 
Hi,

der Reportdesigner (Code oben) wird aus einem ToolButton heraus aufgerufen.

Viele Grüße ...

ChrisE 25. Mai 2011 12:23

AW: Fehler bei Unidac/Fastreport
 
Hi,

ok, soweit so gut. Also fasse ich kurz zusammen:
Delphi-Quellcode:
data.reportQuery
gehört einem bereits aktiven und sichtbarem Fenster. Dieses hat einen Toolbutton der dann die Zeilen Code (s.o.) aufruft. Ist das soweit richtig?

Dann die nächste Frage, hast du eine Testausgabe ohne den Code
Delphi-Quellcode:
frxReport.Clear;frxReport.DesignReport;
gemacht? Mit z.B.
Delphi-Quellcode:
ShowMessage(Format('Query: ''%s'' ergab folgenden RecordCount: %d' [data.reportQuery.SQL.Text, data.reportQuery.RecordCount]))
Gruß, Chris

fillibuster 25. Mai 2011 12:39

AW: Fehler bei Unidac/Fastreport
 
Hallo,

die Query wird lt. Ausgabe korrekt ausgeführt. Das Problem geht also eher in Richtung FastReport:?

Viele Grüße ....

ChrisE 25. Mai 2011 12:42

AW: Fehler bei Unidac/Fastreport
 
Hi,

mit Fastreport arbeite ich leider nicht. Da werd ich hier dann aussteigen :-)

Viel Erfolg bei der weiteren Suche.

Gruß, Chris

fillibuster 25. Mai 2011 12:44

AW: Fehler bei Unidac/Fastreport
 
Hi,

danke für deine Hilfe :thumb:

Viele Grüße ...

Neumann 25. Mai 2011 14:02

AW: Fehler bei Unidac/Fastreport
 
Hallo,

bin mit folgender Vorgehensweise immer klargekommen:

Platziere ein frxDataset auf ein (unsichtbares) Fenster)
Weise dem frxDataset eine Zugriffskomponente (z.B. IbDataset, Clientdataset mit vordefinierten Feldern) zu.
Mache das Design von dem Report, mit dem besagten frxDataset

Wenn das Programm läuft, öffne ich die Zugriffskomponente.
Dann wird der Report gestartet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz