delphi7 dbgrideh显示主从表,增记录时,主表显示,从表不显示问题。
一个dbgrideh 中显示主表和从表 从表用到 TMemTableEh 和 TDateSetDrive 程序打开 dbgrideh 显示主表信息 展开后可以看到从表信息 增加记录时 很多条信息增加到另一个dbgrideh 中 点击保存按钮 一起保存数据库里 从表用到事务回滚
保存按钮的主要代码 如下 :
Frm_Data.ADOConnection1.BeginTrans;
try
with Frm_Data.Qry_Bill do
begin
Append;
FieldByName('BillCode').AsString:=trim(edt_DanJuHao.Text);
if Edit_CustName.Showing then
FieldByName('CustName').AsString:=trim(Edit_CustName.Text);
if Combo_Other.Showing then
FieldByName('CustName').AsString:=trim(Combo_Other.Text);
if Combo_Depart.Showing then
FieldByName('CustName').AsString:=trim(Combo_Depart.Text);
FieldByName('InOrOut').AsString:=inorout;
FieldByName('Sign').AsInteger:=pub_sign;
FieldByName('BillType').AsString:=strBillType;
FieldByName('SGCode').AsString:=trim(Edit_SGCode.Text);
FieldByName('CangName').AsString:=trim(cbb_CangName.Text);
FieldByName('F_user').AsString:=trim(cbb_User.Text);
FieldByName('F_maker').AsString:=trim(Edit_Maker.Text);
FieldByName('Memo').AsString:=trim(Edit_memo.Text);
FieldByName('AddDate').AsDateTime:=DateTimePicker1.Date;
FieldByName('CustId').AsString:=trim(edt_CustId.Text);
Post;
end;
Frm_Data.Qry_BillDetail.UpdateBatch(); // 从表的回滚提交到数据库里去
Frm_Data.ADOConnection1.CommitTrans;
except
Frm_Data.ADOConnection1.RollbackTrans;
MessageDlg(pchar('数据出错导致单据不能保存成功,请重新点击保存按钮保存单据!'), mtInformation,[mbOk], 0);
end;
然而点击保存后 dbgrideh只可以看到主表信息 点击展开 看不到从表信息 查询数据库表 从表有信息 把程序重新打开dbgrideh才可以看到刚才从表信息