線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1264
推到 Plurk!
推到 Facebook!

如何把一個txt檔塞進資料庫的Long Varchar型態的欄位(MS Sql)??

 
joana
一般會員


發表:35
回覆:70
積分:21
註冊:2005-09-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-10-01 21:05:19 IP:61.230.xxx.xxx 訂閱
1.請問,如何把一個txt檔塞進資料庫的Long Varchar型態的欄位(MS Sql)??
可以用sql 指令來完成這件事嗎?
2.這個Long Varchar可以再被Sql 指令Update成另一個txt檔嗎?

麻煩指導!
mel_chen
一般會員


發表:7
回覆:10
積分:3
註冊:2003-09-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-02 01:11:24 IP:218.171.xxx.xxx 訂閱
應該用blob型態會比較好吧?ms sql可指定為image 型態
存入欄位
以下程式碼為節錄請參考

procedure TxDB.FSTofield(fileName, fieldName, sSQL: widestring);
var qy: TADOQuery;
FS: TfileStream;
BS: TStream;
i: integer;
begin
fs := TFileStream.Create(fileName, fmOpenRead or fmShareDenyWrite);
fs.Seek(soFromBeginning, 0);
if fs.size > 0 then
begin
qy := TADOquery.create(application);
xsql.setData(qy, sSQL);
fs.Seek(0, 0);
if qy.RecordCount = 0 then
qy.Append else
qy.Edit;
BS := TBlobStream(qy.CREATEBLOBSTREAM(qy.FIELDBYNAME(FieldName), bmWrite));
BS.CopyFrom(fs, fs.Size);
i := bs.Size;
TblobField(qy.FieldByName(FieldName)).LoadFromStream(fs);
qy.Post;
end;
FS.free;
BS := nil;
qy.Free;
end;

取出
function TxDB.fieldToFS(var qy: TADOQuery; FiledName, fileName: widestring): Tstream;
var BS: TStream;
fs: TfileStream;
i: integer;
begin
try
fs := TFileStream.Create(fileName, fmCreate);
BS := TBlobStream(qy.CREATEBLOBSTREAM(qy.FieldByName(FiledName), bmRead));
fs.CopyFrom(bs, bs.Size);
i := fs.Size;
if i <= 0 then
raise exception.Create('檔案為零');
result := Fs;
finally
freeandnil(fs);
end;
end;




系統時間:2024-05-19 18:32:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!