将下面这句
 Query1.Active:=True
改为
Query1.ExecSQL

解决方案 »

  1.   

    没有数据返回值的操作sql语句是不允许用open之类的操作动作的,只允许使用exesql方法。
      

  2.   

    凡是有返回值的如 Select或一些存储过程,TQuery执行时用OPEN,而象DELETE、UPDATE、INSERT等没有返回的则用EXECSQL
      

  3.   

    多谢楼上,我也是来问这个问题的哈哈
    我的是query.sql.add('alter talbe tablename add age int')
          query.open;
    出现和你相同的错误
    哈哈,多谢楼上
      

  4.   

    把query.open 改成query.execsql;如果是select .. from  ..要用open
    其他如update, delete..等要用execsql
      

  5.   

    加一句
    Query1.ExecSQL
    DELETE、UPDATE、INSERT等用ExecSql
    Select用Open