ADO批量更新主從表時只更新一筆記錄,為何(如果沒有建立主從關係就可以批量更新)請高手指點一下!!!! 有兩個ADODATASET,關係是主從表的關係當我修改多條從表記錄然後一次性提交的時候只能保存最後一筆記錄,而先前修改的記錄還在數據集當中未提交,請問這要如何解決呀!!!(如果是單表的話就沒有問題) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 “當我修改多條從表記錄然後一次性提交的時候”在哪里修改的多条记录,dbgrid吗?updateBatch了吗? 我是用DBEDIT控件。UPDATEBATCH,已經做過了。 更改后,先Post,批量提交时updateBatch,应该没有问题的呀,你是怎么做的,贴出来。QQ:57143540 點擊修改時AdsDetail.edit;保存時 If AdsDetail.DataSource = dsCdsBrows then AdsDetail.DataSource := nil; ADsDetail.UpdateBatch; StatBar.Panels[0].Text := StatBarEvent(3); Application.ProcessMessages; If InhAutoPaperNo then //自動產生單號否 StrPartialKey[0] := data.PaperNoMain(ADsDetail,PaperNoPartialKey) Else SaveIndex; If AdsDetail.FilterGroup = fgPendingRecords then Begin AdsDetail.Filtered := False; AdsDetail.FilterGroup := fgNone; End; SaveData; AdoState := dsBrowse; If DgDetail.DataSource <> dsCdsBrows then DgDetail.DataSource := dsCdsBrows; If AdsDetail.DataSource <> dsCdsBrows then AdsDetail.DataSource := dsCdsBrows; DataEnable; QueryEnableFalse; ButSaveCancelEnableFalse; PageMain.SetFocus; StatBar.Panels[0].Text := StatBarEvent(0); 以上就是我的代碼了。我起先也是想先保存,但是我發現我修改一筆記錄後,等到移到到下一筆時這個數據集的狀態就變成了流LAN狀態。但是數據集的RECORDSTATUS的狀態卻是未提交的。這個鬼問題,原來在用BDE的時候都沒有出這種怪事 先聲明 如果保存時去掉這一段時If AdsDetail.DataSource = dsCdsBrows then AdsDetail.DataSource := nil;就只能保存最後一筆記錄如果加上就可以保存所修改記錄。 求助.....结构的定义 MDI子窗口如何在在主窗体工作区域内布满? DBgrid的问题,急啊! 急!!"加载类型库/DLL时出错"问题怎么解决???在线等!! 接口编程 Interface如何转换成类变量 寻找控件? 使用treeview对选中的一行设置颜色?(在线等) 关于传参数的问题 线程的基本问题, 新人... 紧急:请各位兄弟帮帮忙,请教如何在我的程序中终止其他程序的运行????? Windows或者Delphi有没有函数可以针对一台电脑生成一个唯一的ID? 实数格式定义的问题:
在哪里修改的多条记录,dbgrid吗?
updateBatch了吗?
UPDATEBATCH,已經做過了。
批量提交时updateBatch,
应该没有问题的呀,你是怎么做的,贴出来。
QQ:57143540
AdsDetail.edit;保存時
If AdsDetail.DataSource = dsCdsBrows then
AdsDetail.DataSource := nil;
ADsDetail.UpdateBatch;
StatBar.Panels[0].Text := StatBarEvent(3);
Application.ProcessMessages; If InhAutoPaperNo then //自動產生單號否
StrPartialKey[0] := data.PaperNoMain(ADsDetail,PaperNoPartialKey)
Else
SaveIndex;
If AdsDetail.FilterGroup = fgPendingRecords then
Begin
AdsDetail.Filtered := False;
AdsDetail.FilterGroup := fgNone;
End;
SaveData;
AdoState := dsBrowse;
If DgDetail.DataSource <> dsCdsBrows then
DgDetail.DataSource := dsCdsBrows;
If AdsDetail.DataSource <> dsCdsBrows then
AdsDetail.DataSource := dsCdsBrows;
DataEnable;
QueryEnableFalse;
ButSaveCancelEnableFalse;
PageMain.SetFocus;
StatBar.Panels[0].Text := StatBarEvent(0);
我起先也是想先保存,但是我發現我修改一筆記錄後,等到移到到下一筆時
這個數據集的狀態就變成了流LAN狀態。
但是數據集的RECORDSTATUS的狀態卻是未提交的。這個鬼問題,原來在用BDE的時候都沒有出這種怪事
如果保存時去掉這一段時If AdsDetail.DataSource = dsCdsBrows then
AdsDetail.DataSource := nil;就只能保存最後一筆記錄
如果加上就可以保存所修改記錄。