一个简单的使用query查询语句:
  u_sqlstr1:=' WHERE 1=1 ';
  u_sqlstr2:=' AND 1=1 ';
  u_order:=' ORDER BY 1';
  if length(p_str)>0 then
    u_sqlstr2:=' AND MA01='''+p_str+''' ';
  Q_MPD.close;
  Q_MPD.sql.clear;
  Q_MPD.SQL.Add('SELECT * FROM MPD_FILE ');
  Q_MPD.SQL.Add(u_sqlstr1);
  Q_MPD.SQL.Add(u_sqlstr2);
  Q_MPD.SQL.Add(u_order);
  Q_MPD.Open;
在打开query时,在sql2000上可以通过,但是在oracle8i上出现bdeeginerreorror提示:capability not supported.
如果将代码改成下面的就没有问题:
//  u_sqlstr1:=' WHERE 1=1 ';
//  u_sqlstr2:=' AND 1=1 ';
//  u_order:=' ORDER BY 1';
  if length(p_str)>0 then
    u_sqlstr2:=' AND MA01='''+p_str+''' ';
  Q_MPD.close;
  Q_MPD.sql.clear;
  Q_MPD.SQL.Add('SELECT * FROM MPD_FILE ');
//  Q_MPD.SQL.Add(u_sqlstr1);
//  Q_MPD.SQL.Add(u_sqlstr2);
//  Q_MPD.SQL.Add(u_order);
  Q_MPD.Open;
如果将sql语句直接在sql/plus上运行,完全没有问题
请问这是什么原因?有何解决办法?