sql高手请进,bde中行,ado中出错,why!!!

aay 2001-01-08 09:23:00
用sql分类统计,bde中代码如下:
query1.sql.add('select '+combobox1.text'+',count('+combobox1.text+') as 数量 from ku group by '+combobox1.text;
设combobox1.text:='性别';
无问题.
现改用ado后.上述语句出现错误:
'试图执行的查询中部包含作为合计函数一部分的特定表达式'性别'
改用 parameters(动态)也不行.
但用
select 性别,count(性别) as 数量 from ku group by 性别
则无问题
why!!
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aay 2001-01-09
  • 打赏
  • 举报
回复
to deamd 谢谢。
用三个参数不出错了,但却不出结果(不分类,只有总数)。
你的语句和我的有什么不同?我说一样啊。
artgolf 2001-01-09
  • 打赏
  • 举报
回复
ado中的sql语法与bde中的稍有区别,你可以调整connectstring中的细节来解决此问题,或者用ansi规范,双引号表示字段名,单引号表示字符串常量...
TeamD 2001-01-08
  • 打赏
  • 举报
回复
改正一下我的错误。
上述语句我试验没有错误发生。

edit1.text:='name';

var
sqlstr:string;
begin
sqlstr:='select '+edit1.text+',count('+
edit1.text+') as Num from country group by '+edit1.text;
with adoquery1 do
begin
SQL.Add(sqlstr);
Active:=True;
end;
end;

第一次所述为看错标题了对不住。
button 2001-01-08
  • 打赏
  • 举报
回复
检查一下语句,你这样写肯定错了!!!
TeamD 2001-01-08
  • 打赏
  • 举报
回复
在ADO里面。你要加入三个参数的值而不是一个参数的值。虽然这三个参数的值都是一样的

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧