一个弱问题(100分)

  • 主题发起人 主题发起人 barry1999
  • 开始时间 开始时间
B

barry1999

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位小弟在使用TClientDataSet时遇到下列问题
.......
with ClientDataSet1do
begin
close;
commandtext:='select * from PUB where OPERCODE=:vOperCode';
Params.ParamByName('vOperCode').asString:=edt1.text;
open;
end;
运行时,老是报错‘vOperCode Not Found' why?
在TQUERY中上面的代码都可以啊!!!
后来改为:commandtext:='select * from PUB where OPERCODE='+edt1.text;
运行是又说'datatype mismatch' 但是OPERCODE在数据库里定义的是文本。
请各位帮帮我!!!
 
commandtext:='select * from PUB where OPERCODE='+edt1.text
应该改为:commandtext:='select * from PUB where OPERCODE="'+edt1.text+'"'

哈哈,给分吧!
 
第一、如果在ClientDataSet的CommandText中写的语句中含有参数,在ClientDataSet
中是不能进行自动解析的,只有用Params.Add/Append等方法加入参数,并指定参数的类
型。这样才能传递参数。
第二、你将你的CommandText的语句改为:
commandtext:='select * from PUB where OPERCODE='''+edt1.text+'''';
就可以啦,因为文本类型需要引号进行定界。
 
能告诉我这三个引号是代表什么意识吗?
如何理解他们分别是对什么加的。
他们是和成对的谢谢!!
 
'''代表在字符串中出现'
 
后退
顶部