如何將sql的image型態欄位備份至txt並回存? |
尚未結案
|
chris681016
中階會員 發表:69 回覆:122 積分:98 註冊:2006-10-12 發送簡訊給我 |
|||||
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
試試:
1.TStringField(Table1.FieldByName('Image')) 2. var blobF : TBlobField; ss : TStringStream; begin ads.Insert; blobF := Table1.FieldByName('Image') as TBlobField; ss := Table1.CreateBlobStream(blobF, bmWrite) ; try ss.WriteString('test string'); finally ss.Free; end; Table1.Post; end; |
||||
chris681016
中階會員 發表:69 回覆:122 積分:98 註冊:2006-10-12 發送簡訊給我 |
Memo1.Text:=TStringField(ADOQuery1.FieldByName('prod_photo')).asstring;
會變? MS:= TMemoryStream.Create; TBlobField(ADOQuery1.FieldByName('prod_photo')).SaveToStream(MS); MS.Position:=0; a:=a PointToHex(MS.Memory,MS.size); Memo1.Text:=a; 雖然變成了16進制,但存進去後在秀就錯誤了~~ ADOQuery2.Append; ADOQuery2.FieldByName('s_no').value:='1'; ADOQuery2.FieldByName('i_mage').value:=a; ADOQuery2.post; |
||||
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
試試這個:
TMemo.Lines.LoadFromStream 與 TMemo.Lines.SaveToStream ===================引 用 chris681016 文 章=================== Memo1.Text:=TStringField(ADOQuery1.FieldByName('prod_photo')).asstring; 會變? MS:= TMemoryStream.Create; ? TBlobField(ADOQuery1.FieldByName('prod_photo')).SaveToStream(MS); ? MS.Position:=0; ? a:=a PointToHex(MS.Memory,MS.size); ? Memo1.Text:=a; 雖然變成了16進制,但存進去後在秀就錯誤了~~ ?? ADOQuery2.Append; ?? ADOQuery2.FieldByName('s_no').value:='1'; ?? ADOQuery2.FieldByName('i_mage').value:=a; ?? ADOQuery2.post; |
||||
chris681016
中階會員 發表:69 回覆:122 積分:98 註冊:2006-10-12 發送簡訊給我 |
先感謝大大的回覆^^
procedure TForm1.Button2Click(Sender: TObject); var bit:TJPEGImage; begin MS:= TMemoryStream.Create; TBlobField(ADOQuery1.FieldByName('prod_photo')).SaveToStream(MS); MS.Position:=0; bit := TJPEGImage.Create; bit.LoadFromStream(ms); Image1.Picture.Assign(bit); //一樣是「 ?」 |
||||
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|||||
chris681016
中階會員 發表:69 回覆:122 積分:98 註冊:2006-10-12 發送簡訊給我 |
|||||
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
從 SQL 指令下手. 參考:
http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SQL-Server-2005/Q_22439913.html
If it is truly text repesentation you should be able to use the TSQL Readtext command
If the Text is small (less than 8000 characters) consider doing something like this: Select CAST(CAST(YourColumnname as varbinary(8000)) as varchar(8000)) You can determine the length by doing DATALENGTH(YourColumnName) If it is more than 8000, you are going to have to get more creative.
編輯記錄
hagar 重新編輯於 2010-08-17 09:03:51, 註解 無‧
|
||||
chris681016
中階會員 發表:69 回覆:122 積分:98 註冊:2006-10-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |