Einzelnen Beitrag anzeigen

Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#1

PDF Base64 codiert in Blob-Feld

  Alt 9. Feb 2005, 12:50
Datenbank: MYSQL • Version: 4.1.7-nt • Zugriff über: mysql.pas
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


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat