主从表数据输入技术讨论,欢迎发言!

coolnan 2003-09-30 09:55:39
环境:SQLServer2000,Delphi7,ADO控件,DataLink为数据模板

一、主从表信息输入
采用ADOTable和ADOQuery分两种情况。
1、ADOTable情况
主表设置:ADOT_zhxx
LocaType :ltOptimistic
TableName:t_zhxx
从表设置:ADOT_zhjc、ADOT_zhys
LocaType :ltBatchOptimistic
MasterSource:DS_zhxx
MasterFields:zhxxid
TableName:t_zhjc
添加从表记录
DataLink.ADOT_zhxx.Locate('zhxxid',ls_id,[]);
DataLink.ADOT_zhjc.Append;
保存主从记录
DataLink.ADOC.BeginTrans;
try
DataLink.ADOT_zhxx.UpdateBatch(arAll);
DataLink.ADOT_zhjc.UpdateBatch(arAll);
DataLink.ADOC.CommitTrans;
except
DataLink.ADOC.RollbackTrans;
MessageBox(f_zhxx_edit.Handle,'记录无法保存,请检查输入数据是否正确!','警告',MB_OK+MB_ICONWARNING);
exit;
end;
放弃
DataLink.ADOT_zhxx.CancelBatch(arAll);
DataLink.ADOT_zhjc.Close;
DataLink.ADOT_zhjc.Open;
2、ADOQuery情况
主表设置:ADOQ_zhxx
LocaType :ltOptimistic
SQL :select * from t_zhxx order by zhxxid
从表设置:ADOQ_zhjc
LocaType :ltBatchOptimistic
DataSource:DS_zhxx
SQL :select * from t_zhjc where zhxxid=:zhxxid
添加从表记录
DataLink.ADOQ_zhxx.Locate('zhxxid',ls_id,[]);
DataLink.ADOQ_zhjc.Append;
保存主从记录
DataLink.ADOC.BeginTrans;
try
DataLink.ADOQ_zhxx.UpdateBatch(arAll);
DataLink.ADOQ_zhjc.UpdateBatch(arAll);
DataLink.ADOC.CommitTrans;
except
DataLink.ADOC.RollbackTrans;
MessageBox(Handle,'记录无法保存,请检查输入数据是否正确!','警告',MB_OK+MB_ICONWARNING);
exit;
end;
放弃
DataLink.ADOQ_zhxx.CancelBatch(arAll);
DataLink.ADOQ_zhjc.Close;
DataLink.ADOQ_zhjc.Open;

这是我以前写得东西,有不完善的地方请大家补充,在此多谢了!另外,数据库换成Access后好象不对经,有对Access熟悉的同学讲解一下!
...全文
44 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaolaxiong 2003-09-30
  • 打赏
  • 举报
回复
我还没有用过ADO,一直用BDE
tongki 2003-09-30
  • 打赏
  • 举报
回复
学习!
ltmb118 2003-09-30
  • 打赏
  • 举报
回复
触发器如何?
karach 2003-09-30
  • 打赏
  • 举报
回复
不错,还可以~~~~~~~~~~~~~
khzide 2003-09-30
  • 打赏
  • 举报
回复
没什么,这样就很好。

2,497

社区成员

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

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