![]() |
BlobFeld in eine XML Speichern
Ich erstelle ein XML-Dokument wie folgt:
<DELPHI> procedure TForm1.Button1Click(Sender: TObject); var XML : TXMLDocument; Table : IXMLNode; Field : IXMLNode; i : Integer; begin XML := TXMLDocument.Create(Application); try XML.Active:=True; XML.AddChild('TextXMLDokument'); XML.StandAlone := 'yes'; XML.Version := '1.0'; Table1.Active := True; Table := XML.DocumentElement.AddChild(Table1.TableName); For i := 0 to Table1.FieldCount-1 do begin Field := Table.AddChild(Table1.Fields[i].FieldName); Field.Text := Table1.Fields[i].Value; end; finally Memo1.Lines.Assign(XML.XML); XML.Destroy; Table1.Active := False; end; end; </DELPHI> Mein Problem ist, das ich Tabellen habe, die ein Blobfeld haben was entweder ein BMP oder aber eine Dokument (Word, PDF etc) enthalten. Wie kann ich diese mit in das XML-Dokument speichern? Besten Dank |
Re: BlobFeld in eine XML Speichern
z.B. Base64-Codiert als CDATA.
|
Re: BlobFeld in eine XML Speichern
Ich habe jetzt hier im Forum reichlich gesucht, aber ich kann leider kein
Beispiel zu meinem Problem finden ... Mit ist nicht klar, wie ich zu einem "TXMLDocument" ein Note vom Type cData erzeuge, bzw. den Inhalt des Blob-Feldes einer Tabelle in ein cData schreibe .... Wäre für Beispiele und andere Hilfe sehr dankbar .. |
Re: BlobFeld in eine XML Speichern
Kann mir hier keiner ein Beispiel geben oder weite Hinweise?
|
Re: BlobFeld in eine XML Speichern
Ich verwende nicht TXMLDocument sondern OpenXML direkt. Hier müsste dir jemand ein Beispiel schreiben der diese Komponente verwendet.
|
Re: BlobFeld in eine XML Speichern Lösung
File in Base64 codieren
Delphi-Quellcode:
cData Segment erstellen
uses ....
XMLDoc,XMLIntf,MSXML; function TForm1.GetBase64CodeFile(pFileName: string):String; var cFileData : TStringStream; cFileString : String; cFileStream : TFileStream; begin if (pFileName<>'') then begin if FileExists(pFileName) then begin cFileData := TStringStream.Create(cFileString); cFileStream := TFileStream.Create(pFileName,fmOpenRead); try cFileStream.Position := 0; cFileData.CopyFrom(cFileStream,cFileStream.Size); Result := Base64.Encode(cFileData.DataString); Application.ProcessMessages; finally cFileData.Destroy; cFileStream.Destroy; end; end; end; end;
Delphi-Quellcode:
procedure TForm1.AddFileData;
var cData : IDOMCDATASection; begin cData := xmlDocument.DOMDocument.createCDATASection(xmlCData); xmlNode.DOMNode.appendChild(cData); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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