Einzelnen Beitrag anzeigen

Bodenseematze

Registriert seit: 10. Jul 2023
50 Beiträge
 
#15

AW: "Invalid BLOB handle in record buffer." bei 2. Durchlaufen der Datensätze

  Alt 11. Dez 2023, 13:05
Greifen denn die Reports direkt auf TTable / TQuery oder die Paradoxdateien zu
Die Reports sind Dateien mit der Endung .rpt die ein eigenes, von Crystal Reports definiertes Format vorweisen.
Sie können nur mit CR geöffnet werden und greifen dann auf Datenbanken und Drucker etc. zu, indem sie die in CR zur Verfügung stehenden Schnittstellen verwenden;
Mit dem Delphi-Wrapper, der für ältere Delphi-Versionen von CR zur Verfügung gestellt wurde, hat man die Möglichkeit, diesen Reportdateien sozusagen Parameter mitzugeben, wie z.B. welche Datenbankverbindung sie verwenden sollen oder welche(n) Datensatz sie aus der Datenbank nehmen sollen oder welchen Drucker sie verwenden sollen;
und dann lässt sich über die Schnittstelle auch noch CR selber (grob) steuern, d.h. z.B. eine Druckausgabe anstoßen oder ein Vorschaufenster öffnen
(es geht noch mehr mit der Schnittstelle aber das ist es größtenteils, was in meinem Fall verwendet wird).
d.h. bzgl. Datenbankzugriff wird in meinem Fall den Reports beim Öffnen der MS SQL (bzw. ODBC)-Datenquellname mitgegeben sowie die ID des Master-Datensatz, den sie einlesen sollen sowie das Verzeichnis, in dem die lokale Paradox-Datenbank liegt.
Die Reportdateien selber wissen nichts von Delphi - oder den Komponenten in Delphi...

Das heißt dann ja zumindest schonmal, dass es an dieser Baustelle nicht brennt und Du in Ruhe nach der bestmöglichen Alternative suchen kannst.
Jein ich habe noch ein (neues) Problem, bei dem ich auch nicht so recht weiß, woher es kommt - das werde ich jetzt mal versuchen, in einem neuen Thema zu formulieren...

Auf jeden Fall habe ich noch eine mehrere eigene Hilfsklassen, in der Vereinfachungen für die Datenbank-Queries und die Datenbank selber enthalten sind - die waren sehr TQuery/TDatabase lastig; die stelle ich gerade um, so dass die Schnittstellen TDataSet und TCustomConnection sind und erst intern dann je nach tatsächlich übergebenem Typ (z.B. TQuery vs. TADOQuery) unterschieden wird und unterschiedliche Aufrufe durchgeführt werden bzw. Properties gesetzt / abgefragt werden.
Das als Vorbereitung, das noch weiter zu abstrahieren bzw. eine andere Datenbankschnittstelle zu verwenden...

Der Teil mit den TTable und der Füllung der Paradox-Dateien ist sowieso komplett extra - das könnte ich dann relativ getrennt vom Rest umstellen...
  Mit Zitat antworten Zitat