跟我学DELPHI MIDAS(0分)

  • 主题发起人 主题发起人 kehua
  • 开始时间 开始时间
K

kehua

Unregistered / Unconfirmed
GUEST, unregistred user!
李维的<<Delphi 5.X 分布式多层应用系统篇>>一书中的使用巢状数据表实现Master/Detail
应用系统的例子讲得好像不太清楚。
前面的例子我试过,对多层应用有了一些概念。这本书还是不错的。
 
我正在学Midas,请多指教!liangqiao@ethercity.net。[:D]
 
这个例子基本调通了,我用的是DELPHI 6。可能与DELPHI 5有些不同。
现在的问题是,用 ClientDataSet1.ApplyUpdates(0)只能更新Masterb表,不能更新
Detail表。还有一个问题就是如何不显示adsDetail列?
 
同意dana的看法!大家试试就知道了
 
其实还是没搞清楚巢状数据表,客户端有两个控件TClientDataSet1和TClientDataSet2
TClientDataSet1的属性FieldDefs中有adsDetail字段对象,但是TClientDataSet2的
DataSetField属性中不能设置adsDetail(无任何可选)。
与Master/Detail更新有关的问题可能都与这个问题有关。
有熟悉巢状数据表的吗?
 
Delphi6自带的例子Demos/Midas/MstrDtl的ClientDataSet的
DataSetField属性中就有可选的。
反复研究了这个例子,还是不知道为什么。
 
终于搞清楚了巢状数据表的使用,
客户端有两个控件TClientDataSet1和TClientDataSet2
TClientDataSet1的属性FieldDefs中有adsDetail字段对象,但是TClientDataSet2的
DataSetField属性中不能设置adsDetail(无任何可选)。
解决的办法是:点选TClientDataSet1控件右键菜单的fields Editor,
再点选TClientDataSet1 Editor右键菜单的Add all fields,其中包含了adsDetail
这样TClientDataSet2的DataSetField属性中就可以选adsDetail了。
还有一个问题就是如何不显示adsDetail列?
设置以下就可以在与TClientDataSet1相应的Dbgrid1中不显示adsDetail列。
在Detail中增加一条记录可更新到后台数据库,删除纪录和修改记录不能更
新到后台数据库,按说只需要用ClientDataSet1.ApplyUpdates(0)。还有什么地方
需要设置吗?
 
>解决的办法是:点选TClientDataSet1控件右键菜单的fields Editor,
>再点选TClientDataSet1 Editor右键菜单的Add all fields,其中包含了adsDetail
>这样TClientDataSet2的DataSetField属性中就可以选adsDetail了。
kehua:
兄弟,谢谢你!
去年我调试这个程序的时候,就是这个毛病!
现在终于知道是何故了!
刚才调试了一下,果然很爽!
谢谢!
 
to jrq:
更新有问题吗?
 
不能删除、不能增加,从表中有些字段可以修改。
 
来晚了,原来你已经解决了呀,我也是上个星期才开始看这本书,
那个例子让我搞了一个小时才弄出来。
 
to lilin06:
不晚,不晚!
你试的过程中有没有遇到更新问题?
 
增加、修改可以更新到数据库,删除时,
在ClientDataSet1ReconcileError( )中分析异常代码
Error Message:Record not found or changed by another user
用ADO才有的问题,用BDE没有问题。WHY?
 
有点摸不着头脑,并不总是出现
Error Message:Record not found or changed by another user
现在进一步确定从表的更新没有问题,主表的删除、修改可更新到数据库,
主表的增加出现如下错误:
field ‘adsDetail’ must have a value
最后的问题!
 
例子程序中,在添加记录后,客户端的ID和数据库中的ID不一样,
这时候编辑记录就有'Record not found',我的办法是在ApplyUpdate之后刷新一次就好了
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
947
DelphiTeacher的专栏
D
D
回复
0
查看
897
DelphiTeacher的专栏
D
D
回复
0
查看
867
DelphiTeacher的专栏
D
后退
顶部