SQL中的Binary形態如何看到內容? |
尚未結案
|
比爾丐自
初階會員 ![]() ![]() 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
比爾丐自
初階會員 ![]() ![]() 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
var bs: TBlobStream; s, sTmp, sFinal: string; i, iMemSize: integer; buffer: PChar; begin bs := TBlobStream.Create(Table1.FieldByName('ImageField') as TBlobField, bmRead); try iMemSize := bs.Size; Inc(iMemSize); buffer := AllocMem(iMemSize); bs.Read(buffer^, iMemSize); sTmp := StrPas(buffer); for i := 0 to Length(sTmp) do begin s := Format('%X', [Ord(sTmp[i])]); if Length(s) = 1 then s := '0' s; sFinal := sFinal s; if i < iMemSize then sFinal := sFinal ' '; end; Memo1.Clear; Memo1.Lines.Add(sFinal); // sFinal 即為所求 finally FreeMem(buffer, iMemSize); bs.Free; end; end;--- --<-<-<@ |
比爾丐自
初階會員 ![]() ![]() 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
引言:我試了通不過,提示TBlobStream是未定義的變量,TBlobStream如何定義?var bs: TBlobStream; s, sTmp, sFinal: string; i, iMemSize: integer; buffer: PChar; begin bs := TBlobStream.Create(Table1.FieldByName('ImageField') as TBlobField, bmRead); try iMemSize := bs.Size; Inc(iMemSize); buffer := AllocMem(iMemSize); bs.Read(buffer^, iMemSize); sTmp := StrPas(buffer); for i := 0 to Length(sTmp) do begin s := Format('%X', [Ord(sTmp[i])]); if Length(s) = 1 then s := '0' s; sFinal := sFinal s; if i < iMemSize then sFinal := sFinal ' '; end; Memo1.Clear; Memo1.Lines.Add(sFinal); // sFinal 即為所求 finally FreeMem(buffer, iMemSize); bs.Free; end; end;--- --<-<-<@ |
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
比爾丐自
初階會員 ![]() ![]() 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
Sorry, Binary 型態不能用在 TBlobField
看如下的方法行不行?
var Field1: TField; buffer: PChar; s, sTmp, sFinal: string; i: integer; begin Field1 := ADODataSet1.FieldByName('ddd'); with Field1 do begin if not IsBlob then begin { Allocate space } GetMem(buffer, DataSize); try if not GetData(buffer) then MessageDlg(DisplayName ' is NULL', mtInformation, [mbOK], 0) else begin sTmp := StrPas(buffer); for i := 0 to DataSize do begin s := Format('%X', [Ord(sTmp[i])]); if Length(s) = 1 then s := '0' s; sFinal := sFinal s; if i < DataSize then sFinal := sFinal ' '; end; Memo1.Clear; Memo1.Lines.Add(sFinal); // sFinal 即為所求 end; finally FreeMem(buffer, DataSize); end; end; end; end;--- --<-<-<@ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |