我在做一个通用的数据库查询,由用户自己输入SQL语句,数据库用SQL Server2000,如果用户输入的语法不正确,用try...except...无法捕捉这种错误,
请高手指点,不胜感激!!

解决方案 »

  1.   

    能给我你的具体的源代码吗?
    [email protected]
    一起讨论分析
      

  2.   

    用EDatabaseError判断
    也可参考delphi带的例子
      

  3.   

    你用什么执行sql语句?用query吗?
    try
      query.close;
      query.sql.text := sqltext;//sqltext是用户输入的sql语句
      query.prepare;
      query.open;
    except
      showmessage('你输入的sql语句错误!');
    end;
    不能正确执行吗?
      

  4.   

    你可能是在DEBUG状态下,出现此问题,你可以先编译,然后再运行EXE文件即无此问题
      

  5.   

    UP
    你看一下EXE是否有此问题
      

  6.   

    不能在DELPHI的IDE环境下,异常处理只能在运行EXE文件的时候才能发挥作用!
      

  7.   

    try
      query.close;
      query.sql.text := sqltext;//sqltext是用户输入的sql语句
      query.prepare;
      query.open;
    except
      showmessage('你输入的sql语句错误!');
      raise;
    end;
      

  8.   

    可以通过编写Query的事件来响应其错误事件,捕获相应的ErroCode就行了
      

  9.   

    请参考如下的例子:
    procedure TForm1.Button1Click(Sender: TObject);
    const aa = 'select * from company when';
    begin
      try
        with Query1 do
        begin
          SQL.Clear;
          SQL.Add(aa);
          Open;
        end;
      except
        showmessage('Error');
      end;
    end;