当我用Tquery组件访问Oracle数据库时,如果其中不含参数,则运行正常,如果其中有参数,则运行出现问题,为何。
  qry.close;
 qry.sql.clear;
  qry.sql.add('select GR.GRNAME from GR,ZLBM where GR.ZLBMID=ZLBM.ZLBMID and ZLBM.ZLBMNAME=:z');
  qry.prepare;
  qry.params[0].asstring:='第一车间';
  qry.Open;
  则返回没有记录。
 而下面的则返回有记录。
  qry.close;
 qry.sql.clear;
  qry.sql.add('select GR.GRNAME from GR,ZLBM where GR.ZLBMID=ZLBM.ZLBMID and ZLBM.ZLBMNAME=''第一车间''');
  qry.prepare;
  qry.Open;
  为何。
  

解决方案 »

  1.   

    把qry.params[0].asstring:='第一车间'这一行放在qry.prepare;这一行前面看看
    qry.params[0].asstring:='第一车间';
    qry.prepare;
      

  2.   

    如果我将其改为qry.sql.add('select GR.GRNAME from GR,ZLBM where GR.ZLBMID=ZLBM.ZLBMID(+) and ZLBM.ZLBMNAME(+)=''第一车间''');
    则返回记录,但也不对。(+)为什么意思。
      

  3.   

    是在win nt/2000/xp下吗?是有这个问题,98就可以我也一直在2000下用下面的方法:
    qry.sql.add('select GR.GRNAME from GR,ZLBM where GR.ZLBMID=ZLBM.ZLBMID and ZLBM.ZLBMNAME=''第一车间''');