回 帖 发 新 帖 刷新版面

主题:帮我看看程序.谢谢!

查询
with adoquery1 do
begin
close;
SQL.clear;
sql.add('select bianhao as 编号,yuefen as 月份,gongzi 工资,jiangjin as 奖金, sgongzi as 实际工资 from salary where sgongzi between strtoint(trim(edit1.Text)) and :strtoint(trim(edit2.Text))');
//parameters[0].value.AsInteger:=strtoint(trim(edit1.Text));
//parameters[1].value.Asinteger:=strtoint(trim(edit2.Text));
open;
end;
edit1.Text:='';
edit2.Text:='';
以上是一个查询安纽的程序出现以下错误提示:
Project kaoqin.ext raised exception class EOleException with message '不正常地定义参数对象。提供了不一致或不完整的信息。'Process stopped. Usew Step or Run to continue.

回复列表 (共4个回复)

沙发


'select bianhao as 编号,yuefen as 月份,gongzi 工资,jiangjin as 奖金, sgongzi as 实际工资 from salary where sgongzi between strtoint(trim(edit1.Text)) and :strtoint(trim(edit2.Text))'
改为
'select bianhao as 编号,yuefen as 月份,gongzi 工资,jiangjin as 奖金, sgongzi as 实际工资 from salary where sgongzi between '+trim(edit1.Text)+ 'and '+ trim(edit2.Text)
试一下看看

板凳

用法不对啊,''''+edit1.text+''''这样用应该没问题了

3 楼

SQL中怎么识别,edit??
with adoquery1 do
begin
close;
SQL.clear;
sql.add('select bianhao as 编号,yuefen as 月份,gongzi 工资,jiangjin as 奖金, sgongzi as 实际工资 from salary where sgongzi>=:mingz and sgongzi<=:maxgz');
parameters[0].value.:=strtoint(trim(edit1.Text));
//可以写成parambyname['mingz'].value:=strtoint(trim(edit1.Text)) 
//arambyname属性你查一下我记不住;
parameters[1].value.:=strtoint(trim(edit2.Text));
open;
end;
看看,行不

4 楼


我晓得原因我昨天弄这个也弄了很久
 是因为你的存储过程里有VARCHAR类型,如果这样在parameter中,你要定义parameter.SIZE=大小,然后就可以了,我弄了一天才发现,晕死了

我来回复

您尚未登录,请登录后再回复。点此登录或注册