回 帖 发 新 帖 刷新版面

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

查询
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=大小,然后就可以了,我弄了一天才发现,晕死了

我来回复

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