ClientDataSet中把nText类型字段显示为BLOB类型,怎么办?(200)

F

fjw

Unregistered / Unconfirmed
GUEST, unregistred user!
这几天研究使用ClientDataSet,发现一个奇怪的问题,特来向大家请教,先谢谢了。 问题这样的,我通过ADO连接数据库,TDataSetProvider绑定到ADOQuery上,ClientDataSet再指向TDataSetProvider,都在一个表单上进行演示的,DataSource指向ClientDataSet,然后用DBGrid显示读取的数据,在我的笔记本上运行正常,但在我的台式机上却不能正常显示数据了。 具体表现是在DBGrid中所有的nText字段显示为(BLOB),而在我的笔记本上运行nText字段显示为WideString,用showmessage能正常读取值,但在我的台式机上却不能读取了。 执行ClientDataSet.SaveToFile('c:/debug.xml', dfXML),发现在导出的文件中,如字段MsgText(类型为nText)为值为MsgText="yFTIVAz/jVFlZ9WLAE7ViwIw"了,而在笔记本中执行后导出的正确的值为MsgText="哈哈,再来试一试。",这是什么原因呢,经替换本机中的midas.dll都不能解决问题,请您帮助看看,谢谢了! 另外如果把笔记本上导出的正确的xml文件读取后赋值给ClientDataSet.XMLData,在笔记本上执行显示正常,但在我的这个台式机上显示却又表示为VarBytes类型字段了,同样用showmessage读取不了其中的值。 同样的程序,在其他人的机器上都执行得很正常,但就是有两台机器显示不正常,不知是什么原因,是否是ClientDataSet的BUG呢?
 
在.dpr文件的uses后面的第一行加上 Midaslib,...试试。还有可能和XML的相关补丁有关,你检查一下。
 
谢谢szhcracker,你的提醒真是非常有道理,我得看看是不是因为xml的相关补丁的事情。因为同样的程序,在大部分机器上执行正常,但就有两台机器不正常。
 
谢谢szhcracker大侠,真的非常感谢,郁闷几天的问题终于得到解决,具体方法就是引用MidasLib,抛弃midas.dll,终于调试正常了。再次表示感谢!
 

Similar threads

回复
0
查看
409
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
822
DelphiTeacher的专栏
D
D
回复
0
查看
629
DelphiTeacher的专栏
D
顶部