关于李维的系统篇中的master/detial 程序的求救(100分)

  • 主题发起人 主题发起人 gdmxwh
  • 开始时间 开始时间
G

gdmxwh

Unregistered / Unconfirmed
GUEST, unregistred user!
我严格地按照书上的步骤去做但是在客户端的第二个tclientdataset中点击他的dataset
field时竟然没有书上所说的第一个tclientdataset 的adsdetail.但是连接到tclientdata
set(master表)的dbgrid的字段中却有显示 一个dataset 请问这是怎么回事?
我哪儿做错了吗?
 
你是用ADO连接数据库?
从表是作为主表的一个字段更新。
 
是的,我是用ado连接数据库的,是用sql server 2000,win2k,delphi5。0在本机上。
我把我做的过程写一遍吧:
服务器端:
1。在remote data module 中放入一个adoconnection1 ,设置连接好了数据库pubs(按test
connection 时弹出对话框显示 connection successfully).
2. 在remote data module 中放入一个 adodataset1(用于master表 publishers) 设置它
的connection 为 刚才的adoconnection1,设置他的commandtext为 select * from publish
ers. 放入一个adodataset2(用于detail表 titles) 设置connection为adoconnection1,
设置commandtext为 select * from titles.
3. 在remote data module 中放入一个 datasource1,设置他的dataset 为 adodataset1.
设置adodataset2 的datasource 为 datasource1. 激活adodataset2 的masterfield编辑器
设置主从表选择pub_id作为joined fields
4.在remote data module 中放入一个datasetprovider1,设置他的dataset为adodataset1.
客户机端:
1。放入一个socketconnection1,设置好他的连接,可以看见服务器程序运行了。
2。放入一个clientdataset1,设置好他的remoteserver 和 providername.放入一个datasour
ce1,一个dbgrid1,设置datasource1的dataset 为 clientdataset1,设置dbgrid1的
datasource为datasource1. 这时使clientdataset1的active 为true,可以看见dbgrid1
中显现数据,奇怪的是dbgrid1中有一个字段是 adodataset2,他所有的值都是adodataset.
3.放入一个clientdataset2,一个datasource2,一个dbgrid2.设置datasource2的dataset
为clientdataset2,设置dbgrid2的datasource为 datasource2. 奇怪的是这时clientdatase
t2的datasetfield 是空的,即点击他的下拉框,什么也没有,没有出现李维所说的client
dataset1 的 adodataset2. 这时点击clientdataset2的active属性使他为true 时出错,
说 clientdataset2 没有 dataprovider什么的。运行客户机程序, 只有dbgrid1 中有数据
但多了一个字段 adodataset2.
这是什么原因呢?请各位大侠帮帮忙,我要用这来做毕业设计的。谢谢!!

 
哈哈,我做出来了
只需将clientdataset1的所有字段设置为永久字段即可。
 
祝贺你!
其实在服务端,detail表
commandtext:='select * from detail where id=:id'
datasource.dataset:=adomaster;
即可。
 
多人接受答案了。
 
后退
顶部