Y
yeszhang
Unregistered / Unconfirmed
GUEST, unregistred user!
使用李维 网上普遍的Delphi 2009 Datasnap 游记编写的测试三层..服务器端使用 TSampleDataset 或者TSqlDataSet 打开数据集并用TDataset类型传给客户端.客户端用SqlServerMethod 执行服务器方法,并接收 传来的 TDataset.并打开数据集.测试发现很多SQL 执行后传过来 客户端都会 莫名其妙地出现一些问题.后来跟踪了一下.怎么也找不出问题来..我就先将服务器打开后的数据报错为XML文档.并在客户端接收到TDataset后也保存为文档.我想以此来对比一下:发现只要服务器的TSampleDataset 或者TSqlDataSet SaveToFile 就是保存为XML文档,只要此文档能被IE正确打开就能正确传到客户端并正确读取.但是却有好多数据集经服务器的TSampleDataset 或者TSqlDataSet Open后.并SavetoFile使用IE并不能正确打开.比如我在客户端发送一个简单的SQL给服务器:select DISTINCT(F_Name+'',''+F_CompanyNo) as StoreName from T_Company服务的TSqlDataSet.Open后传过来后却莫名奇妙错误.我在服务器端使用 TSqlDataSet.Savetofile保存为XML文档.发现此XML文档不能被IE打开:<?xml version="1.0" standalone="yes"?> <DATAPACKET Version="2.0"><METADATA><FIELDS><FIELD attrname="StoreName" fieldtype="string" WIDTH="131"/></FIELDS><PARAMS LCID="0"/></METADATA><ROWDATA><ROW StoreName="庞学制管青浦厂区,COM061103153023"/></ROWDATA></DATAPACKET>也就是这个在服务器的TSqlDataSet.Open后将TDataset传给客户端时.就报错.客户端接收后保存为XML文档发现被传改成:<?xml version="1.0" standalone="yes"?> <DATAPACKET Version="2.0"><METADATA><FIELDS><FIELD attrname="F_Values" fieldtype="string.uni" required="true" WIDTH="202"/></FIELDS><PARAMS LCID="0"/></METADATA><ROWDATA><ROW F_Values="庞学制管青浦厂区,COM061103153023"/></ROWDATA></DATAPACKET>妈妈的把字段名都给改掉了...而且很多这样的情况,服务器的TSqlDataSet 能打开数据集.传给客户端就使用TDataset来接收就报错.