[red][急][/red]ADO编程中Master/Detail和窗口继承是DBGrid出错的问题(100分)

  • 主题发起人 netCobra
  • 开始时间
N

netCobra

Unregistered / Unconfirmed
GUEST, unregistred user!
继承的问题:

窗口继承,在祖先窗口中有一个DBGrid,没有添加任何字段,在继承后的后代窗口中给这个DBGrid设好DataSource,然后做“Add all field”,添加进去的字段就无法删除了,错误提示为“Selection contains a component introduced in an ancestor form which can not be deleted”;

Master/Detail的问题:

1.主从表怎样进行增加、修改和删除(就是说修改的时候我应该分别对Master和Detail进行什么操作?或者我只要进行Master.Edit即可了?删除的时候删掉Master的数据,Detail中的数据是否会自动删除?)?在什么时候进行UpdateBatch和CancelBatch?是否进行了BeginTrans后主表提交时从表会自动提交?
2.指定了Detail的Datasource属性为Master的Datasource即可在Master和Detail之间建立联系,系统是如何自动识别联系字段的?这个联系字段我可以自己修改吗?如何修改?如果我的联系字段有两个呢?能否实现?该怎么处理?
3.如果我对Master表中联系字段的值进行了修改,Detail中联系字段的值会自动修改吗?还是需要我手工去修改?


请各位富翁指点!!!
 
为SM要这么麻烦呢?
直接用SQL语句写容易多了
 
窗口继承没有办法解决
1 新增要先新增主表,POST后再新增从表
EDIT不用控制,但注意EDIT 联系字段时,更改主表后要手动更改从表
否则从表的数据会变成孤儿。
删除时要先删除从表数据,再删除主表
2 两个联系字段多余
3 不会自动,要手动更改
 
>窗口继承,在祖先窗口中有一个DBGrid,没有添加任何字段,在继承后的后代窗口中给
>这个DBGrid设好DataSource,然后做“Add all field”,添加进去的字段就无法删除了,
>错误提示为“Selection contains a component introduced in an ancestor form which
> can not be deleted”;

祖先窗口上的DBGrid是怎么搞上去的?
 
To wlmmlw:
>>祖先窗口上的DBGrid是怎么搞上去的?
就是在祖先窗口上放了一个DBGrid(没有加任何字段),连了一个Datasource,这个DataSource连接的是一个没有Active的TADOQuery。
 
直接在DFM文件里删
 
To 碧血剑:
//直接在DFM文件里删

我并不仅仅是想解决这个问题,而是想知道是为什么会产生这个问题,我在使用窗体继承的时候什么地方做错了吗?
 
这算是Delphi的一个Bug吧
 
顶部