Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Fast Report 4: Datenbank nicht zugewiesen (https://www.delphipraxis.net/211899-fast-report-4-datenbank-nicht-zugewiesen.html)

ioster 18. Nov 2022 16:18

Fast Report 4: Datenbank nicht zugewiesen
 
Hallo,

ich bin dabei ein altes Projekt zu überarbeiten, das in Delphi 7 geschrieben wurde und nun von Interbase auf MS SQL Server umgestellt wird.

Mir macht nun die Druckroutineprobleme, die auf Fast Report 4 basiert. Ich arbeite seit jeder mit einem anderen Formulargenerator und komme nun über eine bestimmte Klippe nicht hinweg.

Der frxReport wird mit der Methode PrepareReport vor dem Drucken initialisiert. Diese Routine verursacht die Meldung

"The following error(s) have occured:
Datenbank nicht zugewiesen."

Im Debugger wird als als EIBClientError ausgewiesen, was mich stutzig macht, weil ich nicht mit Interbase arbeiten möchte. Für den Zugriff auf den SQL-Server habe ich SDAC-Komponenten (Version 6.9.17 für Delphi 7) nachinstalliert und kann auf die Daten damit wunderbar zugreifen.

Kann mir jemand kurz erklären, ob die frxReport-Komponente für sich eine Zuweisung der Datenbank benötigt, oder, ob der Fehler von einem Dataset ausgelöst wird, das irgendwo in einer untergeordneten Ebene versenkt ist.

Viele Grüße
Ingo

mytbo 19. Nov 2022 00:07

AW: Fast Report 4: Datenbank nicht zugewiesen
 
Zitat:

Zitat von ioster (Beitrag 1515018)
Kann mir jemand kurz erklären, ob die frxReport-Komponente für sich eine Zuweisung der Datenbank benötigt, oder, ob der Fehler von einem Dataset ausgelöst wird, das irgendwo in einer untergeordneten Ebene versenkt ist.

Der Fehler kommt von einer IBX Komponente. Es gibt zwei Möglichkeiten der direkten Anbindung von IBX in FastReport. Für die Internal DataSets steht der Quelltext in der Unit frxIBXComponents. Findest du die Komponente TfrxIBXComponents im Quelltext, öffne den Berichtdesigner und suche in der Tab-Seite "Data" nach der Komponente TfrxIBXDatabase. Der andere Weg führt über die Komponente TfrxDBDataset und TIBTable/Query im Quelltext. Ersetze die IBX Komponente(n) durch ADO oder FireDAC.

Beide Wege würde ich nicht gehen. Hier habe ich beschrieben, wie einfach eine universelle Lösung aussehen kann.

Bis bald...
Thomas

ioster 19. Nov 2022 13:17

AW: Fast Report 4: Datenbank nicht zugewiesen
 
Moin,

danke für den Tipp. Ich habe nun festgestellt, dass es in den Templates entsprechende frxIBXQueries gibt. Die habe ich gegen frxSDACQueries getauscht und komme schon sehr viel weiter.

Nun bekomme ich einen Konvertierungsfehler, der aus dem Code des Templates resultiert.

"The following error(s) have occured:
Überlauf bei der Konvertierung einer Variante vom Typ (String) in Typ (Integer)"

Leider bekomme ich keine Zeilennummer zurückgeliefert. Kann man den Code eines geladenen Templates debuggen?

Viele Grüße
Ingo

TurboMagic 19. Nov 2022 13:28

AW: Fast Report 4: Datenbank nicht zugewiesen
 
Hallo,

kann man da evtl. teile auskommentieren um einzugrenzen wer der Verursacher ist?

Grüße
TurboMagic

mytbo 19. Nov 2022 19:36

AW: Fast Report 4: Datenbank nicht zugewiesen
 
Zitat:

Zitat von ioster (Beitrag 1515050)
Nun bekomme ich einen Konvertierungsfehler, der aus dem Code des Templates resultiert.

FastReport 4 habe ich nicht zur Hand. Ich würde eh empfehlen, auf eine aktuellere Version zu migrieren. FastReport ist diesbezüglich unkompliziert. Version 2022.2.10 ist mit Delphi 7 kompatibel.

Zitat:

Leider bekomme ich keine Zeilennummer zurückgeliefert. Kann man den Code eines geladenen Templates debuggen?
Jein, es kommt darauf an. Der Fehler ist ein VarOverflowError. Ich würde zuerst das Script anschauen und wie TurboMagic vorgeschlagen hat, alle Teile mal auskommentieren. Wenn das nichts hilft, schauen, ob eigene Funktionen registriert sind. Suche im Quelltext nach der Klasse TfsRTTIModule und den Funktionen AddMethod und CallMethod. Vielleicht kannst du, sollte sich der Fehler nicht finden lassen, eine Berichtdatei *.fr3 hier hochladen. Am besten vorher als Projekt mit Hilfe meiner FastReport Spielumgebung aufbereiten.

Bis bald...
Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:20 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