SQL2008中,資料型別為:image 在DELPHI中如果轉換為字符再保存到文本檔案中?
如何把資料型別為:image 在DELPHI中先查出來,再保存到TXT中?
謝謝!!!!!!
uj5u.com熱心網友回復:
在線等~~~~~~~~~~~~uj5u.com熱心網友回復:
讀出來是個流,你可以直接將流move(函式)到string,不過可能是亂碼或者遍歷流,將每個位元組轉為16進制字串
uj5u.com熱心網友回復:
能具體點么?新手uj5u.com熱心網友回復:
能具體點么?新手
uj5u.com熱心網友回復:
就是個圖片檔案嗎?用base64編碼后進行存盤。應該沒什么問題。SQL 2000的時候,用DELPHI的ADOQuery查詢出來之后,直接可以ADOQuery.FiledByName('image').asstring;把這個用base64編碼即可,如果直接賦值給string是不行的!
uj5u.com熱心網友回復:
請教一下,
用這個方法行么?
http://blog.csdn.net/easy007/article/details/1474347
uj5u.com熱心網友回復:
用這么復雜吧!一句話就解決了!DELPHI本身有一個EncdDecd單元,就是用來base64編碼/解碼的!大概如下:var
sSQL:string;
sText:string;
begin
sSQL := 'select Image欄位 from Table';
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(sSQL);
ADOQuery.open;
if ADOQuery.Recordcount > 0 then
begin
sText := EncodeString(ADOQuery.FieldByName('Image欄位').AsString)); //這個函式就是EncdDecd單元的加密函式
//下面你就可以把sText存到txt檔案中了。
end;
end;
uj5u.com熱心網友回復:
不行啊!我還得保存到另外的資料庫中,和之前的用途得一樣!
uj5u.com熱心網友回復:
function StreamToString(mStream: TStream): string;
var
I: Integer;
begin
Result := ' ';
if not Assigned(mStream) then Exit;
SetLength(Result, mStream.Size);
for I := 0 to Pred(mStream.Size) do try
mStream.Position := I;
mStream.Read(Result[Succ(I)], 1);
except
Result := ' ';
end;
end;
uj5u.com熱心網友回復:
可以,你把字串在base64解碼存盤到資料庫中就行了!這是最常用的方法,網上很多,一搜一大把
uj5u.com熱心網友回復:
TBlobField(cds.FieldByName('imagefiled')).SaveToFile(fileName);uj5u.com熱心網友回復:
clientdataset轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143582.html
標籤:數據庫相關
上一篇:在cocos2dx寫schedule的時候引發了例外: 讀取訪問權限沖突。 _Parent_proxy 是 0x3F800000。求助大佬
