ADO和DATASNAP配合的问题。(应该很简单,就是我不会,请大家帮忙) ( 积分: 100 )

  • 主题发起人 主题发起人 casperl
  • 开始时间 开始时间
C

casperl

Unregistered / Unconfirmed
GUEST, unregistred user!
各位,
我用的是三层结构,在应用服务器端,放置了TADOQuery组件和TDatasetProvider组件,其中TADOQuery组件中写入SQL语句:“SELECT * FROM SF_RJD WHERE 日结人 LIKE :RJR”。包含参数“RJR”,类型为ftString。
在客户端,用TClientDataset与之连接,执行一下代码时,不能正确的返回结果,只返回空的数据集。(数据库中实际上有“张三”的记录)
cds.close;
cds.params.parambyname('RJR').asstring := '张三';
cds.open ;
但是,当改成以下代码时,可以返回所有的记录。
cds.close;
cds.params.parambyname('RJR').asstring := '%';
cds.open ;
实在是不知道哪里错了,请各位帮忙。
 
各位,
我用的是三层结构,在应用服务器端,放置了TADOQuery组件和TDatasetProvider组件,其中TADOQuery组件中写入SQL语句:“SELECT * FROM SF_RJD WHERE 日结人 LIKE :RJR”。包含参数“RJR”,类型为ftString。
在客户端,用TClientDataset与之连接,执行一下代码时,不能正确的返回结果,只返回空的数据集。(数据库中实际上有“张三”的记录)
cds.close;
cds.params.parambyname('RJR').asstring := '张三';
cds.open ;
但是,当改成以下代码时,可以返回所有的记录。
cds.close;
cds.params.parambyname('RJR').asstring := '%';
cds.open ;
实在是不知道哪里错了,请各位帮忙。
 
你用SQLSERVER 的事件探查器 跟踪SQL语句看看
 
casperl
我在三层方面不懂,你能不能给我具体讲一讲,怎么创建一个详细的实例,
急呀,我查了好几天的资料了,我也是邯郸的
 
我觉得代码看起来是对的,只有采用:zblue,说的方法看一下了。
 
最后我们查到原因了,原因是在传中文参数给后台数据库时,本来“张三”的长度是4,可是SQL SERVER将参数长度置为2,只截取了“张”一个字符。有意思的是,我们另外一个同事的电脑上,就可以顺利正确的完成查询()。不知道是ADO驱动程序的问题,还是SQL SERVER版本的问题,或是WINDOWS的问题。再次请大家指教。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部