
Wir haben in der Firma, für die ich arbeite, eine in Delphi V mit Crystal Reports 8 erstellte Anwendung.
Wir alle wissen, dass Crystal & Delphi manchmal launisch sein können, und das Schlimmste ist, dass es fast keine Details zum Fehler gibt. Außerdem gibt es im Internet kaum Dokumentation dazu. Es gibt viele Leute mit ähnlichen Problemen, aber keiner Lösung.
Der Fehler, von dem ich insbesondere spreche, ist der auf dem Bild unten. Er tritt auf, wenn versucht wird, Crystal Reports auf dem Bildschirm auszudrucken.
Dies ist manchmal auf dem Client-Computer passiert und es war für uns schwierig, es in unserer Umgebung zu reproduzieren. Da es sich um eine alte Version von Crystal handelt, ist es sehr schwierig, hilfreiche Dokumentation zu finden, um die genaue Ursache des Problems zu ermitteln.
Antwort1
Das Problem in der Registrierung kann dann durch eine doppelte Installation von BDE verursacht werden. Dies kann mehrere Gründe haben:
- Die Anwendung oder Borland neu installiert, ohne sie vorher zu deinstallieren
- Die Deinstallation wurde nicht vollständig abgeschlossen
- Eine zweite Anwendung mit BDE installiert
Um dies zu überprüfen, ging ich in die Registrierung und fand Folgendes:
[HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine] "DLLPath" = "C:\Programme\Gemeinsame Dateien\Borland Shared\BDE" in der Form Pfad1, Pfad2.
Um dies zu beheben, müssen Sie Folgendes tun:
- Erstellen Sie für den Fall, dass etwas schief geht, eine Sicherungskopie des BDE-Schlüssels.
- Schließen Sie Ihre Anwendung.
- Öffnen Sie Regedit (Start > Ausführen > regedit.exe)
- Gehen Sie zu HKEY_LOCAL_MACHINE \ SOFTWARE \ Borland \ Database Engine
- Doppelklicken Sie dann auf den Schlüssel DLLPath und bearbeiten Sie einen der beiden Pfade (überprüfen Sie, welcher Ihrer Installation entsprechend der richtige ist). Sie sollten zwei Pfade wie im Bild unten haben. Entfernen Sie einen davon
Dieser sollte wie im Bild unten nur einen Pfad haben.
RegEdit schließen
Jetzt können Sie Ihre Anwendung erneut öffnen und versuchen, einen beliebigen Bericht auf dem Bildschirm zu öffnen. Wenn Sie die einfachen Schritte korrekt ausgeführt haben, sollte kein Fehler auftreten und Sie sollten die Berichte auf dem Bildschirm sehen können.
Dies geschah insbesondere bei meiner Anwendung, aber bei Anwendungen, die Crystal Reports und BDE Admin verwenden, muss derselbe Prozess befolgt werden.
Antwort2
Jedes Mal, wenn ich diese Art von Fehler mit Crystal 8.5 habe, lag es an gemischten Versionen von Crystal-Bereitstellungs-DLLs oder an deren Fehlen. In meinem Fall mit Crystal 6.0, das einige unserer Kunden immer noch verwenden.
Der langweilige Teil besteht darin, alle DLLs zu finden und zu löschen. Normalerweise befinden sie sich auf x86-Systemen unter %systemroot%\system32 und auf x64-Systemen unter %systemroot%\syswow64.
Weitere Dinge, die Sie beachten sollten:
- Richten Sie einen Ausgangspunkt ein. Ich meine, hier stellen wir immer sicher, dass es auf einer sauberen Maschine funktioniert.
- Mehrere Versionen von Crystal Reports auf derselben Maschine funktionieren einfach nicht, Punkt. Egal, ob Sie über die Entwicklungs- oder Bereitstellungsumgebung sprechen.
- Ich lege grundsätzlich alle DLLs für die Bereitstellung von Crystal 8.5 unter %systemroot%\crystal ab und platziere sie im Systempfad. Dadurch wurden 95 % der häufigsten Bereitstellungsprobleme gelöst.
Ich weiß, dass es für eine Antwort etwas spät ist, aber es könnte anderen helfen.