急:请各位大虾来帮帮忙,看看是什么错误,发生错误的原因2天了,没搞明白,谢谢各位!!!在线等

kun6660 2007-07-20 09:09:37
str := select jc_ccpck.bill,jc_ccp.mc,jc_ccp.gg,jc_ccpckxx.sl,'+
'case jc_ccp.gg when ''优级'' then jc_ccpckxx.sl else 0 end as my,'+
'case jc_ccp.gg when ''一级'' then jc_ccpckxx.sl else 0 end as m1,'+
'case jc_ccp.gg when ''合格'' then jc_ccpckxx.sl else 0 end as mh,'+
'case jc_ccp.gg when ''次品'' then jc_ccpckxx.sl else 0 end as mc,'+
'case jc_ccpck.lb when ''礼品'' then jc_ccpckxx.sl else 0 end as ml,'+
'jc_ccpck.cksj from jc_产成品出库详细 jc_ccpckxx,jc_产成品出库 jc_ccpck,jc_产成品 jc_ccp where jc_ccpck.bill=jc_ccpckxx.bill and jc_ccpckxx.bh=jc_ccp.bh and jc_ccp.mc = ''绵白糖''';
iniQuery(str,Query1);//让Query执行这条SQL语句
编译没有错误,运行时就会出现一个窗体,
标题为:CPU
第二行为:Thrcad#3056
剩下的,根本看不懂是什么东西,我感觉是16进制的数(但是,不能确定)

如果,将语句改为:
str := select jc_ccpck.bill,jc_ccp.mc,jc_ccp.gg,jc_ccpckxx.sl,'+
'case jc_ccp.gg when ''优级'' then jc_ccpckxx.sl else 0 end as my,'+
'case jc_ccp.gg when ''一级'' then jc_ccpckxx.sl else 0 end as m1,'+
'jc_ccpck.cksj from jc_产成品出库详细 jc_ccpckxx,jc_产成品出库 jc_ccpck,jc_产成品 jc_ccp where jc_ccpck.bill=jc_ccpckxx.bill and jc_ccpckxx.bh=jc_ccp.bh and jc_ccp.mc = ''绵白糖''';
iniQuery(str,Query1);//让Query执行这条SQL语句
运行时一点错误也没有,我不知道问题的原因出在哪里了!
自我感觉问题:
1,语句太长,解决方法,将表别名缩短为一个字符,出现的结果和上述一样;
2,直接将语句写到Query.Sql.Add('')中一行一行添加,出现的结果和上述一样;
3,直接将SQL语句写到,Query控件SQL属性中,出现的结果和上述一样。

请问到底出了什么问题啊,谢谢各位了!
...全文
198 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
kun6660 2007-07-21
  • 打赏
  • 举报
回复
qjinshanq()
没有,没有,其他程序都好使!
logne()
恩,在oracle里执行也都可以通过
procedure iniQuery(str:string;Q:TADOQuery);
begin
With Q do
begin
CLose;
SQL.Clear;
SQL.Add(str);
Open;
end;
end;

我简单的写了一个,执行两句没问题
执行其他SQL语句也没有问题!
logne 2007-07-21
  • 打赏
  • 举报
回复
楼主还是把iniQuery这个函数贴出来看看吧
logne 2007-07-21
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
Str: string;
begin
str := 'select jc_ccpck.bill, jc_ccp.mc, jc_ccp.gg, jc_ccpckxx.sl, '+
'case jc_ccp.gg when ''优级'' then jc_ccpckxx.sl else 0 end as my,' +
'case jc_ccp.gg when ''一级'' then jc_ccpckxx.sl else 0 end as m1,' +
'case jc_ccp.gg when ''合格'' then jc_ccpckxx.sl else 0 end as mh,' +
'case jc_ccp.gg when ''次品'' then jc_ccpckxx.sl else 0 end as mc,' +
'case jc_ccpck.lb when ''礼品'' then jc_ccpckxx.sl else 0 end as ml,' +
'jc_ccpck.cksj from jc_产成品出库详细 jc_ccpckxx,jc_产成品出库 jc_ccpck,jc_产成品 jc_ccp where jc_ccpck.bill=jc_ccpckxx.bill and jc_ccpckxx.bh=jc_ccp.bh and jc_ccp.mc = ''绵白糖''';

{ str := 'select jc_ccpck.bill,jc_ccp.mc,jc_ccp.gg,jc_ccpckxx.sl,' +
// 'case jc_ccp.gg when ''优级'' then jc_ccpckxx.sl else 0 end as my,' +
//'case jc_ccp.gg when ''一级'' then jc_ccpckxx.sl else 0 end as m1,' +
'jc_ccpck.cksj from jc_产成品出库详细 jc_ccpckxx,jc_产成品出库 jc_ccpck,jc_产成品 jc_ccp where jc_ccpck.bill=jc_ccpckxx.bill and jc_ccpckxx.bh=jc_ccp.bh and jc_ccp.mc = ''绵白糖''';
}
adoQuery1.SQL.Clear;
ADOQuery1.SQL.Add(str);
ADOQuery1.Open;
end;
在sqlserver 2000个人版下验证通过的,两句话全都可以正确执行
bpmb2 2007-07-20
  • 打赏
  • 举报
回复
你是不是用的sql2000,数据库本身打没有打补丁?如果没有打补丁,可能会出现这种问题,与程序无关的,打补丁试一下吧。
kun6660 2007-07-20
  • 打赏
  • 举报
回复
没有人了阿?
kun6660 2007-07-20
  • 打赏
  • 举报
回复
撒哈拉之雨的悲伤
哦,哦,是我在这里写错了,程序里不是这样的!
str := 'select jc_ccpck.bill,jc_ccp.mc,jc_ccp.gg,jc_ccpckxx.sl,'
不好意思啊!
hsmserver 2007-07-20
  • 打赏
  • 举报
回复
str是一个字符串
str := select jc_ccpck.bill,jc_ccp.mc,jc_ccp.gg,jc_ccpckxx.sl,'
显然这句是不对的
str:='..
kun6660 2007-07-20
  • 打赏
  • 举报
回复
撒哈拉之雨的悲伤
恩,程序就这么写的,能执行阿!

失踪的月亮
我现在在尝试着去写过程之后调用,可是,我现在想搞清楚这个问题出在哪里了!
hsmserver 2007-07-20
  • 打赏
  • 举报
回复
//这怎么?是写错了还是程序就是这么写的
str := select jc_ccpck.bill,jc_ccp.mc,jc_ccp.gg,jc_ccpckxx.sl,'+

str:=' ......'
hongqi162 2007-07-20
  • 打赏
  • 举报
回复
你写个存储过程不就可以了吗,这么长的sql
kun6660 2007-07-20
  • 打赏
  • 举报
回复
没有打错啊,这些语句,我在PL/SQL中,可以执行,能得到想要的结果啊!
左连接和右连接都试过来了,还是一样的结果啊!
mdejtod 2007-07-20
  • 打赏
  • 举报
回复
这个语句不算长吧,,,
str := select jc_ccpck.bill,jc_ccp.mc,jc_ccp.gg,jc_ccpckxx.sl,'+
//这边是打错的么?
要不改用 inner join 的方式看下,
qjinshanq 2007-07-20
  • 打赏
  • 举报
回复
LZ不是delphi中标了吧?看看新建工程会不会出现cpu调试框...
kun6660 2007-07-20
  • 打赏
  • 举报
回复
logne() 谢谢你啊!
我这种方法我用过了,结果还是一样的!
logne 2007-07-20
  • 打赏
  • 举报
回复
楼主把这句话直接写到ado的sql里,然后active改成true,看会不会出错呢
kun6660 2007-07-20
  • 打赏
  • 举报
回复
没有人遇到过这种问题吗?难道这种问题就真的那么难解决吗?
kun6660 2007-07-20
  • 打赏
  • 举报
回复
不是,sql2000,是oracle

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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