发帖再问:主从表的保存问题(我觉得好难解决,重分求解决啊),或者大家讨论讨论

caochen 2003-08-19 02:19:29
数据库中问了很多主细表的问题,可是没有我满意的,现在还是不得不问啊。谢谢
我主表设置了关键字“单据编号”,从表用“单据编号”和主表关联起来,但是从表没有关键字,也就是说单据编号+货物编号可以为多条记录,在新增时,当主表的单据编号加入后,我现Post主表,然后再Edit主表,Edit细表,然后细表逐项增加数据,保存时却出错了,不知道是什么原因,我的做法如下:
try
ItemDataSet.Post; //保存之前先Post,如果出错,则不保存,置于编辑状态
MasterDataSet.Post;
MasterDataSet.Edit;
ItemDataSet.Edit;
except
Application.messagebox('数据保存失败!请检查编码是否重复,或稍后再试',p_msgTitle,MB_OK+mb_iconwarning);
MasterDataSet.Edit;
ItemDataSet.Edit;
Abort;
end;

如果都不出错,然后再如下:
if not DM.ADOConnection1.InTransaction then
begin
DM.ADOConnection1.BeginTrans;
try
MasterDataSet.updatebatch;
ItemDataSet.UpdateBatch;
DM.ADOConnection1.CommitTrans;
except
DM.ADOConnection1.RollbackTrans;
Application.messagebox('数据保存失败!请检查编码是否重复。',p_msgTitle,MB_OK+mb_iconwarning);
//raise;
//Abort;
end;
end
else
begin
Application.MessageBox('服务器忙请稍后再试!',p_msgTitle,MB_OK+mb_iconWarning);
end;

不知道是什么原因啊,在第一步细表Post的时候就出错,大家帮帮我找找原因。
...全文
25 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
DGNO_1 2003-11-26
  • 打赏
  • 举报
回复
我在编辑时发现从表的GRID 会显示不出正在输入的数据。

要先将主表POST 才行,唉.
jingbianfc 2003-11-26
  • 打赏
  • 举报
回复
用三层分布式编程,APPLYUPDATES!
cow8063 2003-08-19
  • 打赏
  • 举报
回复
出什么错?
MichealLee 2003-08-19
  • 打赏
  • 举报
回复
老兄把一个简单的事情搞得这么复杂。

提示:
1.在application中添加公共函数单元
如:
unit Unit_Pub_Function;

interface
...

//公共函数--保存主单
function Save_Main(cId,FieldName,FieldValue:string):boolean;

//公共函数--保存子单(明细单)
function store_save_detail(cid,f_name,f_value:string):boolean;

...
//写这两个函数

2. 其它的窗体中需要时,引用这两个函数旧可以了。


caochen 2003-08-19
  • 打赏
  • 举报
回复
大家谁能解决我再给分啊

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧