Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi PDF Base64 codiert in Blob-Feld (https://www.delphipraxis.net/39947-pdf-base64-codiert-blob-feld.html)

emsländer 9. Feb 2005 13:50

Datenbank: MYSQL • Version: 4.1.7-nt • Zugriff über: mysql.pas

PDF Base64 codiert in Blob-Feld
 
Moin,

ich habe zwei Datenbanken. Eine läuft auf einem Webserver (nennen wir diese WEB) und eine im Büro (nennen wir die Office). Auf dem Server im Büro läuft ein von mir entwickelter Dienst, der alle fünf Minuten in WEB nachschaut, ob dort ein neuer Datensatz ist und ggfs. nach Office schaufelt. Die beiden Server sind über eine 512 MBit VPN verbunden. Das besondere Augenmerk liegt dabei auf dem pdf (_myRow[6]). Der Inhalt des Feldes PDF ist BASE64 kodiert. - In der DB ist das ein BLOB - Feld.

Beschreibung des Service:

Mit folgender Routine wird jeweils 1 Datensatz in den Arbeitsspeicher geladen:

Delphi-Quellcode:
      id       := _myRow[0];     // ID
      code     := _myRow[1];     // Lizenzcode
      user_code := _myRow[2];     // UserCode
      nachricht := _myRow[3];     // eMail Nachricht
      dossier  := _myRow[4];     // Dateiname
      f_xml    := _myRow[5];     // XML-Datei
      pdf      := _myRow[6];     // PDF
Mit diesem Code werden diese Variablen in die Datenbank Office geschrieben:
(an dieser Stelle nicht geschriebene Variablen landen in anderen Tabellen)
Delphi-Quellcode:
      stmp := 'INSERT INTO DOKUMENTE (zu_Akte,Typ,Dokument,Sachbearbeiter) VALUES     ("'+aktenid+'","Antrag","'+pdf+'","eMail")';
      mysql_select_db(_fddcon, 'Dokumente');
      query := PCHAR(stmp);
      speichercode := inttostr(mysql_real_query(_fddcon, query, Length(query)));
      DatensatzID := inttostr(mysql_insert_id(_fddcon));
      fehlercode := mysql_error(_fddcon);


Die Daten sind alle soweit da. Ob der Inhalt von PDF geschrieben wird, kann ich bis jetzt nicht nachvollziehen. Und das genau ist der Punkt. Mit meinem Auswertungsprogramm greife ich auf die DB Office zu un versuche jetzt das pdf zu dekodieren und zu speichern um dann den Reader automatisch aufzurufen.

auch hier hab ich das Feld PDF wieder in einer Variablen (sTmp : string);
es wird mir eine Länge von 65535 Zeichen angezeigt (entspricht genau der Länge des BLOB-Feldes der Datenbank). Nach Dekodierung mit BASE64Decode bleiben 0 Byte über .... und das ist der Punkt...

Wo könnte da der Fehler stecken?

Gruss

EL


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 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 by Thomas Breitkreuz