DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: 15863418162
今日帖子: 36
在线用户: 20
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 minger (minger) ★☆☆☆☆ -
盒子活跃会员
2003/8/5 11:17:36
标题:
请教高手——用sql查询access数据库 浏览:3073
加入我的收藏
楼主: 我最近用access做了个数据库
然后在对数据统计的时候
我用了COUNT (DISTINCT expression) 语句。

在运行统计时出错,提示如下:
project server.exe raised exception class EOLeException with message'语法错误 (操作符丢失) 在查询表达式' count(distinct b.服务编号)'中。'.process stopped . use step or run to continue.

查询语句应该是没问题的,我把数据库改为是paradox的,查询就没问题,而且得到结果了。
请问各位高手,这究竟是什么问题?而且我现在还是要用access的数据库,请问如何解决。
急啊!!!!谢谢大家了!!



----------------------------------------------
-
作者:
女 haikely (阿) ★☆☆☆☆ -
盒子活跃会员
2003/8/5 11:21:21
1楼: 你是用什么组件?
----------------------------------------------
-
作者:
男 minger (minger) ★☆☆☆☆ -
盒子活跃会员
2003/8/5 12:29:24
2楼: 用的是delphi 6 的ado控件!

----------------------------------------------
-
作者:
男 minger (minger) ★☆☆☆☆ -
盒子活跃会员
2003/8/6 8:52:49
3楼: 怎么没人回答啊??
我 急啊!
55555~~~~~~~
----------------------------------------------
-
作者:
女 haikely (阿) ★☆☆☆☆ -
盒子活跃会员
2003/8/6 9:08:05
4楼: 可能只是缺少标点符号,单引号或分号.你再仔细查找一下
----------------------------------------------
-
作者:
男 minger (minger) ★☆☆☆☆ -
盒子活跃会员
2003/8/6 9:14:59
5楼: 我自己觉得好象是缺少了个关键字啊。
比如在用 select no 学号  from stu 的时候也会出现上述错误提示。
把sql语句改为 select no  AS 学号  from stu 则运行成功。

我认为aeecss里的sql和标准的sql语句格式有所不同啊。正如在标准的sql中重命名显示字段不要用AS 啊,但access中却要写成 select no  AS 学号  from stu 。

请谁告诉我我到底是缺了哪个操作符啊?
----------------------------------------------
-
作者:
女 haikely (阿) ★☆☆☆☆ -
盒子活跃会员
2003/8/6 9:17:33
6楼: 你把代码贴出来
----------------------------------------------
-
作者:
男 minger (minger) ★☆☆☆☆ -
盒子活跃会员
2003/8/6 9:27:22
7楼: procedure TForm_gather.gather_zero;      //按服务性质统计
var
  sqlstr:string;
begin
  StringGrid1.ColCount:=5;
  StringGrid1.DefaultColWidth:=118;
  StringGrid1.Cols[0].Add('服务性质');
  StringGrid1.Cols[1].Add('服务点数');
  StringGrid1.Cols[2].Add('点数比例');
  StringGrid1.Cols[3].Add('服务次数');
  StringGrid1.Cols[4].Add('次数比例');
  StringGrid1.RowCount:=StringGrid1.RowCount+1;
  sqlstr:='select a.服务性质,count(b.出厂编号),count(distinct b.服务编号)';
  sqlstr:=sqlstr+#13+'from kind a,serverkind b,server c';
  sqlstr:=sqlstr+#13+'where a.服务性质代号=b.服务性质代号 and b.服务编号=c.服务编号';
  if condition<>' then
     sqlstr:=sqlstr+' and ('+condition+')';
  sqlstr:=sqlstr+#13+'group by 服务性质';
  with query_gather do
  begin
   Close;
   SQL.Clear;
   SQL.Add(sqlstr);
   Open;
  end;
end;

关键是在count(distinct b.服务编号)  如果没有distinct 则一点问题也没有,程序执行成功的啊!有了它就会提示上述错误。
请知道的高手快帮帮我!
----------------------------------------------
-
作者:
女 haikely (阿) ★☆☆☆☆ -
盒子活跃会员
2003/8/6 9:50:02
8楼: 你把distinct放在外面试一下,写成distinct count(B.服务编号)
----------------------------------------------
-
作者:
男 minger (minger) ★☆☆☆☆ -
盒子活跃会员
2003/8/6 9:54:46
9楼: 那样得到的就不是想要的结果了啊
distinct count(fieldname) 和 count(distinct fieldname)
是不一样的结果的啊。

兄台可有qq,愿与你一起探讨
我的7688100
----------------------------------------------
-
作者:
女 haikely (阿) ★☆☆☆☆ -
盒子活跃会员
2003/8/6 10:07:16
10楼: 不好意思,我没有QQ.我们再查一下相关的资料吧.看COUNT有没有支持DISTINCT关键字.找到再一起探讨
----------------------------------------------
-
作者:
男 minger (minger) ★☆☆☆☆ -
盒子活跃会员
2003/8/6 11:32:40
11楼: 不会把,难道就没有人能告诉我拉??!!
按此在新窗口浏览图片 按此在新窗口浏览图片 按此在新窗口浏览图片 按此在新窗口浏览图片 按此在新窗口浏览图片 按此在新窗口浏览图片
----------------------------------------------
-
作者:
男 wflkxj (一剑小龙) ★☆☆☆☆ -
盒子活跃会员
2003/8/8 13:04:39
12楼: 对不起,你的问题我也弄不明白,但一些资料上也是这么写的。对了,原来我提的那个问题就是自己再建一个别的主从关系数据(dbf或db),那么点也是死,并
且delphi也死了。我怀疑是不是我们选错了门。另外,你的问题也可以到http://www.delphibbs.com(大富翁论坛)上问一问,也许能解决。
愿 我们长联系。祝你好运
----------------------------------------------
-
作者:
男 minger (minger) ★☆☆☆☆ -
盒子活跃会员
2003/8/8 13:22:40
13楼: 你那问题可能还是字段是中文的问题。把它改为英文或拼音试试。

曾经在一本参考书上见过说delphi不支持中文字段名,不过我也确实用过中文做字段名,一般也未发现什么大的问题。当时我怀疑那位作者是不是说的delphi的早期版本,但那本书讲的是delphi6的啊。所以那时我以为我那位作者错了,现在看来,那位作者的提醒是有道理的。在delphi中应尽量不要使用中文字段名。

现在我做的几个系统中也大多用的中文字段名,呵呵,不改了,等到以后发现问题再说把。

还有我说的sql的查询access数据库的问题,放了这么久,都没找到解决办法,只得一狠心把库改为sql server的了,由于sql语句没什么问题,所以也就很容易就解决了。
上次给你的邮件收到没?谢谢你的支持!

----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS