做调查原因: 近来写服务的时候使用到TClientDataSet 查询数据库,然后使用他的XMLData生成XML字符串,这样一来就很方便传输到客户端。客户端的TClientDataSet也使用XMlData赋值就可以了。其实我就是使用TClientDataSet的一个方法和一个属性,方法是:open来查询数据库的数据;属性是:XMLdata是用来生成XML字符串 ;可是在使用过程中偶尔出现访问内存地址访出错的提示,错误提示来源就是Midas.dll。有时也出现什么灾难性故障。首先声明我把TClientDataSet换为TAdoQuery后一切正常,就是写多一些代码,还有TAdoQuery生成的XML也比TClientDataSet大了好多。我真的怀疑TClientDataSet存在以下的问题,最好是不间断的运行TClientDataSet进行查询数据库和使用XMLdata取出数据来观察他。调查现象如下:1.偶尔出现灾难性故障;2.使用XMLData的时候出现内存访问违规错误,提示来源Midas.dll3.使用TClientDataSet存在内存泄露
希望大家积极参与对大家以后是否使用这个控件心里有个底!别走那么多弯路。由于本人水平有限,上面几个问题是我在反复使用过程中遇到的问题。希望有高人来点评指正。谢谢。
希望大家积极参与对大家以后是否使用这个控件心里有个底!别走那么多弯路。由于本人水平有限,上面几个问题是我在反复使用过程中遇到的问题。希望有高人来点评指正。谢谢。
这里就有个帖子
http://hi.baidu.com/tinajames/blog/item/2dea0e0c6cef7c980b7b8282.html
试下把Midas.dll这个文件复制到客户端和服务器端的C:\WINDOWS\system32下面,然后写个注册的bat文件,或者在开始-->运行里面输入以下两行命令:
c:\windows\system32\regsvr32 midas.dll
c:\windows\system32\regsvr32 midas.dll /u
midas.dll/midaslib.dcu补丁 这两个补丁是官方的还是一些高人所改写的,由于那个链接已经无法打开。
http://www.2ccc.com/article.asp?articleid=4385
试下这个看看,不过千万记得使用前备份
XE2 没试过不知道,估计也是需要的。
经过不断的测试和查询大量的资料终于找到问题所在, 希望以后对各位遇到这样的问题的朋友少找弯路。我最初是使用Oracle 10G 来测试程序的,后来经过查阅一些资料后,改换数据库为SQLSERVER 2000后问题得到解决;据一些资料说说是数据据驱动问题造成的; oracle可以是使用BDE来替代ADO,但实际上是不是数据库连接驱动问题还有待证实;问题就集中在数据库和数据库驱动上了。 同时谢谢大家的支持和参与。