如何刷新TClientDataSet中的数据? 我在一个项目中创建了两个页和一个DataModule。A页包括一个DataGrid,他的DataSouce指向DataModule中的TDatasource,而TDatasource的dataset指向一个TClientDataSet。A页的OnCreat方法使A页一打开,就显示表C的记录。B页执行向表C插入记录,可我发现,每次用B页执行完插入记录后,再打开A页,不能显示出新记录,只能显示旧记录。重新执行项目,打开A页,则可以显示。请问何故?在线。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 tabsheet?在切换页面时,更新一下数据,如ONSHOW事件中 对不起,是我没表达清楚。是对话框。我是在OnCreat中通过ClientdataSet.CommandText打开数据库的,按说对话框每次创建时都应该执行一次,可实际不行。 你应该在用过ClientdataSet.CommandText打开数据库之前,先把ClientdataSet关闭再打开,不然它认的是以前的ClientdataSet.CommandText的意思,不会改变,关闭再打开,才会重新打开数据库 我是先Close,再设置CommandText,再Open的呀。 先CLOSE。再OPEN。clinetdataset1.refresh可是刷新! 1. B 页执行插入后,有没有进行 ApplyUpdates?2. A 页的 OnCreate 可能只进行了一次。你可以看看它的 OnDestroy 事件执行了几次,如果没有进行 Destroy,则第二次 Show 时,不会 Create 的。如果是这样,在 OnShow 事件中写 ClientDataSet1.Close;ClientDataSet1.Open。 可对于Select.....from ...,并不需要ApplyUpdate啊!也就是说,我没有任何插入动作,再次打开查询对话框,未执行任何查询动作,就已经显示了旧信息。按理说,再次打开,应该是等我执行一个点击查询的按钮后才显示结果啊? copy oncreate 到 onshow ,还有 如果有,if dm.adoquery.false then ....=true;这句不要,这样,每次打开A的时候应该是正常的了有没有applyUpdates ,好像没有上面问题 ”copy oncreate 到 onshow“ ,不行啊!没有“if dm.adoquery.false then ....=true;”并且,ADOQuery在Server端,在客户端如何直接操作它?“applyUpdates"只有在Edit或插入状态才能用,对于查询并不需要啊! 我的都是copy oncreate 到 onshow的3层中表现层也要有ADOQuery的阿,你做几层的? 可对于Select.....from ...,并不需要ApplyUpdate啊!也就是说,我没有任何插入动作,再次打开查询对话框,未执行任何查询动作,就已经显示了旧信息。按理说,再次打开,应该是等我执行一个点击查询的按钮后才显示结果啊?=====================如果这样,在 OnClose 时,执行 ClientDataSet1.Close; 在 pagecontrol.onchange 事件中调用 onshow 事件 闹不清你做的是不是多层结构自己提问题时表达清楚,才能得到更好的帮助。B页执行向表C插入记录后,如是多层结构除调用post方法外,还需调用applyUpdates方法上传到服务器再打开A页,应该在A页的active 事件重新执行一遍查询,才能显示出新记录,同OnCreate中的一样。OnCreate 方法只在对话框初始化的时候,调用一次。 【弱弱的问】关于IOCP与客户端 ICS不能触发数据接受了 。。 动态创建子窗体后,如何使子窗体不自动显示,只有在子窗体的show属性被调后才显示? 一個應用程序在98上運行時的錯誤:Canvas does not allow drawing! 如何把日期转换成英文日期,小弟请教!如2004-02-01 转换成 Feb,01,2004 Memo问题 一个窗口打开后,怎么从新刷新他? 关于treeview 急!关于ADO的问题啊! 怎样得到textout里的各参数? 请在线的朋友帮帮我 Windows XP中如何安装MS SQL SERVER2000?
我是在OnCreat中通过ClientdataSet.CommandText打开数据库的,按说对话框每次创建时都应该执行一次,可实际不行。
2. A 页的 OnCreate 可能只进行了一次。你可以看看它的 OnDestroy 事件执行了几次,如果没有进行 Destroy,则第二次 Show 时,不会 Create 的。如果是这样,在 OnShow 事件中写 ClientDataSet1.Close;ClientDataSet1.Open。
这句不要,这样,每次打开A的时候应该是正常的了
有没有applyUpdates ,好像没有上面问题
=====================如果这样,在 OnClose 时,执行 ClientDataSet1.Close;
自己提问题时表达清楚,才能得到更好的帮助。B页执行向表C插入记录后,如是多层结构除调用post方法外,还需调用applyUpdates方法上传到服务器
再打开A页,应该在A页的active 事件重新执行一遍查询,才能显示出新记录,同OnCreate中的一样。
OnCreate 方法只在对话框初始化的时候,调用一次。