我在一个窗体里添加一条入库明细,我是用偷懒的办法,按了添加后就模拟dbnavigator1.btnclick(nbinsert);然后我想在主窗体里设置一个事务,我的代码如下:
procedure TfrmPartsIO.ButtonOKClick(Sender: TObject);
begin
mydata.C_4S.BeginTrans;
try
DBNavigatorPage.BtnClick(nbpost);//入库单表
DBNavigatorItems.BtnClick(nbpost);//入库明细表
mydata.C_4S.CommitTrans;
except
mydata.C_4S.RollbackTrans;
messagebox(self.Handle,'数据库错误,[确认保存]操作被取消!','错误警告',mb_iconerror);
end;
end;
可是却出错,说入库明细表不在添加或修改的状态,可是我在把添加入库明细的窗口关闭后并没有关闭入库明细表呀,怎么回事?
procedure TfrmPartsIO.ButtonOKClick(Sender: TObject);
begin
mydata.C_4S.BeginTrans;
try
DBNavigatorPage.BtnClick(nbpost);//入库单表
DBNavigatorItems.BtnClick(nbpost);//入库明细表
mydata.C_4S.CommitTrans;
except
mydata.C_4S.RollbackTrans;
messagebox(self.Handle,'数据库错误,[确认保存]操作被取消!','错误警告',mb_iconerror);
end;
end;
可是却出错,说入库明细表不在添加或修改的状态,可是我在把添加入库明细的窗口关闭后并没有关闭入库明细表呀,怎么回事?
yourdataset1.edit;
TABLE.INSERT有时候就会出现这样的问题,而且这种问题不太确定,
有时候你在前面加入table.edit;它会提示你表正处于"其他的"状态的
if yourDataSet.State in dsEditModes then yourDataSet.Post;