|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2004/7/30 7:56:00 |
标题: |
|
加入我的收藏 |
楼主: |
帮我一个忙好吗,我有一个BDE方面的问题不明白,在BDE中用query设置主从结构数据表怎么设置呀
----------------------------------------------
- |
作者: |
|
2004/7/30 8:41:23 |
1楼: |
用Query直接设主从关系我也不知道,不过用Table时则可设MasterSource,MasterFields来实现主从表; 此外,用Query时可在主表打开后再打开从表(一般在Query的AfterOpen事件中处理),效果是一样的(性能可能比Table实现更好一些)。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
|
作者: |
|
2004/7/30 8:46:51 |
2楼: |
谢谢
----------------------------------------------
-
|
作者: |
|
2004/7/30 8:50:19 |
3楼: |
给个例程好吗
----------------------------------------------
-
|
作者: |
|
2004/7/30 12:46:11 |
4楼: |
1、用Table实现时,主表设置同一般表格设置,从表先按一般表格设置好(TableName指向从表),然后选择MasterSource(你应用一个DataSource指向主表的那个Table),接着再选择MasterFields(一般是主表的主键与从表主键的对应,这时会弹出一个选择窗口的)就可以了; 2、用Query时应在主表Query的AfterScroll事件处理,此事件带一个参数:DataSet: TDataSet,你可用DataSet.FieldByName('主键名').AsInteger取到当前主表记录的主键值,然后处理从表: 一般从表的SQL语句可这样设置:'Select * from 从表名 Where 主键名 = :iKeyID',其中:iKeyID为参数,然后你用Query.ParamByName('iKeyID').AsString来设置好参数值,再Open一下就可以了,举例如下: procedure TForm1.qryMasterAfterScroll(DataSet: TDataSet); begin qrySlave.Close; qrySlave.ParamByName('KeyID').AsInteger := DataSet.FieldByName('KeyID').AsInteger; qrySlave.Open; end; 此外主表打开后定位一下,如qryMaster.First;
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
|
|