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

TGraphicField v.s TUpdateSQL

尚未結案
marlon_wu
一般會員


發表:5
回覆:6
積分:2
註冊:2002-09-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-11 15:51:32 IP:203.204.xxx.xxx 未訂閱
有一table內含圖片欄位, 圖片資料以 JPEGStream 存成 TStream, 再以TBlobField.LoadFromStream的方式讀入, 由於該table在select時有join其他table, 所以用TUpdateSQL來異動資料, 結果當該圖片欄位值為null, 且沒有異動該欄位時, update的結果發現Delphi產生這樣的sql: update tablename set field_n = xxx, .... picture = 0x 結果picture值變成不是null了, UpdateSQL的參數替換是參考李維的書: procedure SetParams(FUpdateSQL: TUpdateSQL; DeltaDS: TClientDataSet; UpdateKind: TUpdateKind); var I: Integer; Old: Boolean; Param: TParam; PName: string; Field: TField; Value: Variant; begin if not Assigned(FUpdateSQL.DataSet) then Exit; with FUpdateSQL.Query[UpdateKind] do begin for I := 0 to Params.Count - 1 do begin Param := Params[I]; PName := Param.Name; Old := CompareText(Copy(PName, 1, 4), 'OLD_') = 0; if Old then System.Delete(PName, 1, 4); Field := DeltaDS.FindField(PName); if not Assigned(Field) then Continue; if Old then Param.AssignFieldValue(Field, Field.OldValue) else begin Value := Field.NewValue; if VarIsEmpty(Value) then begin Value := Field.OldValue; end; Param.AssignFieldValue(Field, Value); end; end; end; end;
系統時間:2024-05-19 23:01:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!