环境: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熟悉的同学讲解一下!