在此之前加一句MySQLDataset1.SQL.Clear;试试。

解决方案 »

  1.   

    MySQLDataset1.SQL.ADD('select * from tablename where field1=''tmp''');
        
      

  2.   

    这可能不是open或execsql的问题
      

  3.   

    你传值试一下吧,我也遇到过这个问题
    SQL.clear;
    SQL.add('select * from table where field1=:Strbh');
    parameters.paramByName('Strbh').value:=tmp;
    open;
      

  4.   

    MySQLDataset没有Params这个属性啊!
      

  5.   

    open一般是用来执行不用返回信息的语句,
    而execsql一般是用来执行有返回信息的语句的!
      

  6.   

    open是用来执行select的,
    execsql什么都可以执行。
      

  7.   

    是我,在我的机器上没问题,你重装一次MYSQL或者那个组件看看。
      

  8.   

    知道啊,但为何open和execsql执行同一句select时,execsql正确而open就会报错呢 
      

  9.   

    MySQLDataset1还其他什么事件
    自己检查检查
      

  10.   

    在我的机器上不会这样,执行Open或Execsql都不会出错。可能是你的机器的原因