![]() |
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:
Der startet auch, aber wenn ich versuche das entsprechende Dataset zu wählen gibt es folgenden Fehler:
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; Zitat:
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 .... |
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; |
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 ... |
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 |
AW: Fehler bei Unidac/Fastreport
Hi,
der Reportdesigner (Code oben) wird aus einem ToolButton heraus aufgerufen. Viele Grüße ... |
AW: Fehler bei Unidac/Fastreport
Hi,
ok, soweit so gut. Also fasse ich kurz zusammen:
Delphi-Quellcode:
gehört einem bereits aktiven und sichtbarem Fenster. Dieses hat einen Toolbutton der dann die Zeilen Code (s.o.) aufruft. Ist das soweit richtig?
data.reportQuery
Dann die nächste Frage, hast du eine Testausgabe ohne den Code
Delphi-Quellcode:
gemacht? Mit z.B.
frxReport.Clear;frxReport.DesignReport;
Delphi-Quellcode:
Gruß, Chris
ShowMessage(Format('Query: ''%s'' ergab folgenden RecordCount: %d' [data.reportQuery.SQL.Text, data.reportQuery.RecordCount]))
|
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 .... |
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 |
AW: Fehler bei Unidac/Fastreport
Hi,
danke für deine Hilfe :thumb: Viele Grüße ... |
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. |
AW: Fehler bei Unidac/Fastreport
Hi
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; <---- HIER frxReport.DesignReport; was sagt denn an der Stelle die ich oben markiert habe data.reportQuery.RecordCount? Und weiter möchte ich diese blasfemische Frage stellen ;-) In der Query wird IMMER das SQL ausgeführt, das Du zur Designzeit eingetragen hast (Es wird immer nur das zur Designzeit eingetragene SQL-Statement ausgeführt.) - und du vermutest dass FastReport schuld ist? Und noch eine Frage: Kommt denn wirklich ein Ergebnis bei der Query? Kommt auch bei der zur Designzeit eingetragene SQL-Statement ein Ergebnis zurück? Grüße |
AW: Fehler bei Unidac/Fastreport
Hallo,
bist du dir sicher, dass frxDataset auch wirklich mit deiner Abfrage verbunden ist? Vielleicht so ...
Delphi-Quellcode:
Und öffnen brauchst du eigentlich das Dataset nicht, wenn du bei der frxDataset Komponente im OI beide folgenden Eigenschaften auf True stellst.
if data.reportQuery.Active then data.reportQuery.Close;
data.reportQuery.SQL.Text := 'SELECT * FROM articles Where number like ''%456%'''; data.reportQuery.Open; frxDBDataset.DataSet := data.reportQuery; //<---- Add frxReport.Clear; frxReport.DesignReport;
Delphi-Quellcode:
oder so ...
CloseDateSource := True
OpenDataSource := True;
Delphi-Quellcode:
Gruß
if data.reportQuery.Active then data.reportQuery.Close;
data.reportQuery.SQL.Text := 'SELECT * FROM articles Where number like ''%456%'''; frxDBDataset.CloseDateSource := True; //<---- Add frxDBDataset.OpenDataSource := True; //<---- Add frxDBDataset.DataSet := data.reportQuery; frxReport.Clear; frxReport.DesignReport; Matze PS. Bei UniDac kannst du auch Parameter verwenden, die eigentlich in jeder Query Komponente vorhanden ist. Bei UniDac ist es aber besonders einfach die zuverwenden. Braucht du da Tipps? Dann kannst du auch deine Abfrage zur Designzeit erstellen und mit einem Platzhalter vordefinieren z.B. so ... SELECT * FROM articles Where number like :Value |
AW: Fehler bei Unidac/Fastreport
Hallo Zusammen,
erstmal danke für eure Antworten. Zuerst: Ich arbeite schon lange mit mit Unidac/Fastreport (quasi seit erscheinen der Unidac und vorher mit IBDac) und hatte diese Probleme noch nie. Nach dem weiteren testen ist die Lösung vorerst:
Delphi-Quellcode:
Obwohl ich das zugegeben nicht verstehe, denn im OI ist das korrekt zugewiesen?! Aber es funktioniert!
frxDBDataset.DataSet := data.reportQuery;
Viele Grüße ... |
AW: Fehler bei Unidac/Fastreport
hast du zufälligerweise innerhalb des Reports das Dataset nochmal angelegt?
|
AW: Fehler bei Unidac/Fastreport
Hallo,
nein, habe da nur das Dataset verbunden. Viele Grüße ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz