三层结构奇怪问题,高手请进!(0分)

  • 主题发起人 主题发起人 qytf007
  • 开始时间 开始时间
Q

qytf007

Unregistered / Unconfirmed
GUEST, unregistred user!
最近作了一个三层数据库系统,应用层通过ADO连接到SQL SERVER,客户端SocketConnection,用ClientDataSet发送SQL语句:
ClientDataSet1.close;
ClientDataSet1.commandtext:=
'select * from w_kccl where 材料名称=:para1';
ClientDataSet1.Params[0].value:='金具仓库';
执行后,无法查询出匹配的结果。如果直接执行:
select * from w_kccl where 材料名称='金具仓库'
可返回满足条件的结果集。
另外,邪门的是:在SocketConnection+ADO+Oracle架构中,客户端的SQL语句如有聚集函数如:select 材料名称,sum(金额) 金额 from w_kccl group by 材料名称,返回的数据集“金额”字段本应有两位小数,实际的数据集中所有“金额”都四舍五入为整数了,将中间层到Oracle的连接改为dbExpress的SQLConnection,同样的客户端,同样的SQL语句“金额”字段会保留精确的结果。
 
哦,不会
 
用sql profile跟踪一下,看看发送到数据库的语句到底是什么.
 
好像clientdataset有点问题,用参数查询,只要是汉字的就查不出来,所以我只好用''''+需要的字符串+'''',这种方式查询,就不会出错了。
 
最好不要用汉字做字段名,在用clientdataset时要特别注意,我估计字段名是中文的缘故,还有你把参数去掉再试试
 
后退
顶部