Adoquery带参数查询的问题 (15分)

  • 主题发起人 主题发起人 稻草
  • 开始时间 开始时间

稻草

Unregistered / Unconfirmed
GUEST, unregistred user!
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add( ' select field1,count(*) from table ' );
adoquery1.sql.add( ' where field2=:cs group by field1 ' );
adoquery1.Parameters.ParamByName('cs').Value:=edit1.Text;
adoquery1.open;
运行出错:ORA-00979: 没有 GROUP BY表达式
而改为直接赋值:
adpquery1.sql.add( ' select field1,count(*) from table ' );
adoquery1.sql.add( ' where field2='abc' group by field1 ' );
或者:
adoquery1.sql.add( ' select field1,count(*) from table ' );
adoquery1.sql.add( ' where field2='''+edit1.Text+''' group by field1' );
或者:
adpquery1.sql.add( ' select distinct field1,count(*) from table ' );
adoquery1.sql.add( ' where field2=:cs group by field1 ' );
则没问题,
但是加了distinct后,在有的客户机中运行也会出现此错误,有的则没有,晕!
觉得用adoquery1带参数查询的时候,如果有GROUP BY 语句的就有问题,是不是ADO的BUG?
后台ORACEL 7.3数据库
我需要用带参数查询的带GROUP BY 的SQL 语句
 
adoquery1.sql.add( ' select field1,count(*) from table ' );
adoquery1.sql.add( ' where field2=:cs ' );
adoquery1.sql.add( ' group by field1 ' );

这样试试~ 错了不要骂我
 
在加上adoquery1.parameters[0].datetype:='fmstring'

必须定义参数类型
 
adoquery1.Parameters.ParamByName('cs').Value:=edit1.Text;
可能错在这句上,指定字段类型试试,也有可能是BUG。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
653
import
I
I
回复
0
查看
442
import
I
后退
顶部