在客户端,cds_master的数据修改并保存后,cds_master.close;cds_master.open;这时显示的数据是修改后的数据.
但是,cds_detail的数据修改并保存后,cds_master.close;cds_master.open;这时显示的数据是修改前的数据,必須重新启动程序后显示的才是修改后的数据.
请大家想想可能是那儿的问题.已经困扰我两个多星期了.
但是,cds_detail的数据修改并保存后,cds_master.close;cds_master.open;这时显示的数据是修改前的数据,必須重新启动程序后显示的才是修改后的数据.
请大家想想可能是那儿的问题.已经困扰我两个多星期了.
cds_detail是通过cds_master去过来的吗?还是通过独立的provider取过来的?
主从表都更新了
AdoConnetion1:[按实际情况配置]
DataSource1:
[DataSet:=AdoDataSetMain]
AdoDataSetMain:
[CommandText:=SELECT Stu_ID, Name FROM dbo.Students]
AdoDataSetDetail:
[CommandText:='SELECT dbo.Score.* FROM dbo.Score INNER JOIN
dbo.Students ON dbo.Score.Stu_ID = dbo.Students.Stu_ID';
DataSource:=DataSource1;
MasterFields:='Stu_ID']
DataSetProvider1:[DataSet:=AdoDataSetMain]
/***在这里AdoDataSetMain将dbo.Score作为一个字段传送到客户段。***/
客户端添加:
DCOMConnection1:[]
ClientDataSetMain:
[RemoteServer:=DCOMConnection1;
ProviderName:=DataSetProvider1;
右键增加所有字段;]
ClientDataSetDetail:
[RemoteServer:=DCOMConnection1;
ProviderName:=AdoDataSetMain;
DataSetField:=AdoDataSetMainAdoDataSetDetail;
这时delphi会自动将RemoteServer和ProviderName清空; ]
一切OK!!!
祝君好运!!!
我的应用程序服务器上不是用的adodataset,而是两个adotable: adotablemaster和adotabledetail,没有写sql语句啊!难道这是原因?我的配置如下:
中间件
ADOConnetion1:[按实际情况配置]
ADOTableMaster:
[Connection := ADOConnetion1;
TableName := student;]
DataSource1:
[DataSet:=ADOTableMaster]
ADOTableDetail:
[Connection := ADOConnection1;
TableName := relation_Student_Course;//学生选课
MasterSource:=DataSource1;
MasterFields:='Stu_ID']
DataSetProvider1:[DataSet:=ADOTableMaster]客户端:
DCOMConnection1:[]
cds_Master:
[RemoteServer:=DCOMConnection1;
ProviderName:=DataSetProvider1;
右键增加所有字段;]
cds_Detail:
[ DataSetField:=cds_MasterADOTableDetail;]请帮忙看看有甚么问题吗?
我可以把我的测试程序给你
给你赔不是了;
饶命,饶命;
卖个乖
-------------------------------------------------------------
寻寻寻,寻斑竹小小在线
如果您觉的您对Delphi 感兴趣或是很想学的更好些或者是对Delphi 有更深的认识,我们可以一起交流;
呵呵
www.nxrs.net/bbs
谢谢,别抛砖
你的程序里难道没有设置这一项吗?根据我现在的理解,如果一切都按这么缺省配置的话,refresh肯定得出问题!
你注意到没有,adotabledetail自从第一次open后就一直处于active状态!