如何把一個txt檔塞進資料庫的Long Varchar型態的欄位(MS Sql)?? |
|
joana
一般會員 發表:35 回覆:70 積分:21 註冊:2005-09-02 發送簡訊給我 |
|
mel_chen
一般會員 發表:7 回覆:10 積分:3 註冊:2003-09-09 發送簡訊給我 |
應該用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; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |