Delphi7+ADO(Access)主从表关联有有关问题,请教是什么有关问题?请帮忙。多谢

Delphi7+ADO(Access)主从表关联有问题,请问是什么问题?急啊。请帮忙。谢谢
装的是Delphi7,安装时选择的是Office   Xp。
使用的Office版本为,Office2002,在Access建表时,主窗口显示的是“Access   2000格式”

主表
MainID         (自动编号)
Name             (文本)
Sex               (文本)

从表
ID                 (自动编号)
MainID         (长整型数字)
Company       (公司)

在ACCESS的“工具”-“关系”中,将主表中的MainID与从表中的Main做一对多的关系。


Delphi设置
主表ADODataSet
主表DataSource1   (用于做主从关联)
主表DataSource2   (用于其它DataControls的DataSource设置)

从表ADODataSet   (DataSource设置的为主表DataSource1;MasterFields也做了与主表的关联)
从表DataSource   (用于其它DataControls的DataSource设置)

Locktype均设置为:ltBatchOptimistic
CursorType:   ctStatic
CursorLocation:   clUseClient
(ps:应该是跟上面这三项无关系,以前也做过类似的软件,也是这样的设置)


目前问题是:
做以下操作后
主表ADODataSet.Append;
主表ADODataSet.FieldByName( 'Name ').AsString   :=   '小王 ';
从表ADODataSet.Append;
从表ADODataSet.FieldByName( 'Company ').AsString   :=   'A公司 ';
从表ADODataSet.Append;
从表ADODataSet.FieldByName( 'Company ').AsString   :=   'B公司 ';

从表中只显示一条数据项,可以说,从表中数据项的填写总是不正确。请问这是怎么回事呢?是不是我遗漏了哪?

我曾经试过,就主表的MainID改为长整理,自已填写,也是无效的。(估计跟这个原因无关,因为在ACCESS中做操作是没问题的)
我曾经试过,取消主表从表的关系,仅对从表做简单的数据Append操作。也没问题,应该跟ADO等数据库联接没问题)

请问这是什么原因?很急很急!谢谢。


------解决方案--------------------
用ltBatchOptimistic或三层更新,就不要用自增字段,字段也不要设默认值.
因为自增字段是提交后数据库自己生成,除非你提交后close再次open,否则程序里的值和数据库中的值会不一致,更新会出错.

你从表append后要设置从表.MainID=主表.id,access中的关系在你的程序里无效,要手动设置ID
------解决方案--------------------
,从表中数据项的填写总是不正确??
不知道你的主从表是如何关联的..
------解决方案--------------------
用事务控制一下,先提交主表,如果有异常Rollback就可以了