全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2358
推到 Plurk!
推到 Facebook!

ClientdataSet二进制文件存储问题

答題得分者是:mustapha.wang
wujun0901
一般會員


發表:8
回覆:7
積分:3
註冊:2007-02-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-02-21 15:01:51 IP:61.175.xxx.xxx 訂閱
问题描述我已做成avi文件,请用影音风暴播放

具体代码如下
if DlgOpen.Execute then
begin
if UpdateCDS.State in [dsBrowse] then
if UpdateCDS.FieldByName('序号').AsString = '' then
UpdateCDS.Append
else
UpdateCDS.Edit;
if UpdateCDS.State in [dsinsert, dsedit] then
begin
UpdateCDS.FieldByName('更新文件名').Asstring := trim(ExtractFileName(DlgOpen.FileName));
UpdateCDS.FieldByName('文件日期').AsDateTime := filedatetodatetime(FileAge(DlgOpen.FileName));
ClientDatasetBlobtodb(UpdateCDS, DlgOpen.FileName, '文件内容');
UpdateCDS.FieldByName('文件大小').AsString:= inttoStr(GetFileSize(DlgOpen.FileName));
UpdateCDS.Post;
UpdateCDS.SaveToFile('c:\save-new.xml',dfXMLUTF8);
Memo1.Lines.LoadFromFile('c:\save-new.xml') ;
Tempcds.Data:=Null;
Tempcds.Data := UpdateCDS.Delta;
Tempcds.MergeChangeLog ;
Tempcds.SaveToFile('c:\start-New1.xml',dfXMLUTF8);
Memo2.Lines.LoadFromFile('c:\start-new1.xml') ;
end;
end;
发现在 Tempcds.Data := UpdateCDS.Delta;这句后, save-new.xml和start-new1.xml两个文件中的二进制文件内容居然发生了改变.
先谢谢各位版主了.
mustapha.wang
資深會員


發表:88
回覆:407
積分:274
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-03-02 20:50:46 IP:222.68.xxx.xxx 訂閱
因为你调用了MergeChangeLog,把Delta资料都变成了正常资料,即没有易动。所以XML中不会出现updatestatus为usInserted,usModified的节点。
wujun0901
一般會員


發表:8
回覆:7
積分:3
註冊:2007-02-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-03-08 10:55:18 IP:61.175.xxx.xxx 訂閱
已经解决了,直接用midaslib单位就可以了
mustapha.wang
資深會員


發表:88
回覆:407
積分:274
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-03-09 15:51:32 IP:222.68.xxx.xxx 訂閱
MidaLib只是避免分发时带上Midas.dll,如何能解决你的问题?
mustapha.wang
資深會員


發表:88
回覆:407
積分:274
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-03-09 16:08:28 IP:222.68.xxx.xxx 訂閱
MidaLib只是避免分发时带上Midas.dll,如何能解决你的问题?
系統時間:2017-12-18 14:54:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!