急,报这样的错invail field name ORA-00904:"COMPN":无效的标识符 是什么原因? 在线等

新生代码农NJ 2008-11-28 10:47:57
我是用Delphi编程的,连接的Oracle数据库过程如下,
procedure TdlgWDW.RunWDW(DWMC: string);
begin
if qryWDW.Active then qryWDW.Close;
qryWDW.SQL.Clear;
qryWDW.SQL.Add('select GYS_GYSID, GYS_MC, ');
qryWDW.SQL.Add('(case when CHARINDEX(''X'',U_GYS_TYLX) > 0 then ''停用'' else ''在用'' end) as ZT ');
qryWDW.SQL.Add('from GYS ');
qryWDW.SQL.Add('where U_GYS_WDWLX like ''
%X%'' ');
if Trim(DWMC) <> '' then
begin
qryWDW.SQL.Add(' and GYS_MC like :pMC ');
qryWDW.ParamByName('pMC').AsString := '%'+ Trim(DWMC) +'%';
end;
qryWDW.SQL.Add('order by ZT desc, GYS_MC');
qryWDW.Open;
end;
在qryWDW.Open这一句时报错,但是在别人的机子上不报错。不知道问题出在哪里,GYS表我也用PLSQL重新导入了,还是报错。
请高手指点
...全文
437 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gudaohanfeng 2009-05-08
  • 打赏
  • 举报
回复
用decode
hyee 2008-12-03
  • 打赏
  • 举报
回复
qryWDW.ParamByName('pMC').AsString := '%'+ Trim(DWMC) +'%';

这一行有问题了
linzi 2008-12-03
  • 打赏
  • 举报
回复
qryWDW.SQL.Add(' and GYS_MC like '':pMC'' ');
这样试试,好象是传进来的参数没有带引号的原因吧
cshluo 2008-12-02
  • 打赏
  • 举报
回复
奇怪!奇怪! 关注,关注....
yonghengdizhen 2008-12-02
  • 打赏
  • 举报
回复
很有可能是由于delphi对象复用引起的,类似在VB中的ADODB.Recordset.Filter中设置了属性,很多人把它忽略,结果在执行新的SQL时,Filter被作为新的SQL条件表达式的一部分,而新的SQL引用的数据库对象并不存在先前所引用的条件表达式设计的field
codearts 2008-11-28
  • 打赏
  • 举报
回复
报什么错?
新生代码农NJ 2008-11-28
  • 打赏
  • 举报
回复
语句在PLSql下也能执行
select GYS_GYSID, GYS_MC,
(case when instr('X',U_GYS_TYLX) > 0 then '停用' else '在用' end) as ZT
from GYS
where U_GYS_WDWLX like '%X%'
order by ZT desc, GYS_MC
qap22 2008-11-28
  • 打赏
  • 举报
回复
??
android2008 2008-11-28
  • 打赏
  • 举报
回复
??
新生代码农NJ 2008-11-28
  • 打赏
  • 举报
回复
invail field name
ORA-00904:"COMPN":无效的标识符
报上面的错

1,619

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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