Binary Field 和 XML |
尚未結案
|
LPH
一般會員 發表:53 回覆:43 積分:19 註冊:2003-04-02 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 有誰知道如何將 Binary 欄位的資料放入 XMLDocutment .. 用 mychild.appendChild(mydoc.createComment(Query1.parambyname('mbinfield').asstring)); 好像有問題....有一個辦法是您可以把xml存成檔案, 然後將整個檔案存到Blob欄位中, 請參考:http://delphi.ktop.com.tw/topic.php?topic_id=19505 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
solnone
中階會員 發表:2 回覆:97 積分:69 註冊:2003-05-06 發送簡訊給我 |
若你的欄位型態是memo,可以用下面的方式
procedure TForm1.Button1Click(Sender: TObject);
var
xmldoc: Variant;
Node, NewNode: Variant;
i: integer;
begin
xmldoc := CreateOleObject('Msxml.DOMDocument');
xmldoc.LoadXML('
|
solnone
中階會員 發表:2 回覆:97 積分:69 註冊:2003-05-06 發送簡訊給我 |
使用delphi sample db animals.dbf 中的 bmp欄位
以 TStream 把 blobfield 讀出
以 BinToHex 轉成 hex text function GetFieldToHEX(Field: TField): string;
var
ReadByte: integer;
Stream: TStream;
buffer: array [0..1023] of Char;
TextBuffer: array [0..2045] of Char;
begin
Stream := TMemoryStream.Create;
try
if Field is TBlobField then begin
(Field as TBlobField).SaveToStream(Stream) ;
end else
raise Exception.Create('Not BlobField!');
Stream.Position := 0;
while Stream.Size <> Stream.Position do begin
if (Stream.Size - Stream.Position) > Length(buffer) then begin
ReadByte := Stream.Read(buffer, Length(buffer));
end else begin
FillChar(buffer, Length(buffer), 0);
ReadByte := Stream.Read(buffer, Stream.Size - Stream.Position);
end;
BinToHex(buffer, TextBuffer, ReadByte);
Result := Result + Copy(TextBuffer, 0, ReadByte * 2);
end;
finally
Stream.Free;
end;
end; procedure TForm1.Button1Click(Sender: TObject);
var
xmldoc: Variant;
Node: Variant;
begin
xmldoc := CreateOleObject('Msxml.DOMDocument');
xmldoc.LoadXML('
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |