不同的数据库其触发器的格式是不同的,可以参照说明文件.with ATOQuery do
begin
  Close; //在设置SQL语句之前关闭数据集
  SQL.Clear; //清空原有SQL语句
  SQL.Add(sSQLStatment);//设置SQL语句
  Prepare; //通知后台服务器,预备各种参数
  Open; //用Open方法,SQL语句应返回结果,如SELECT语句
  ExceSQL; //用ExecSQL方法,SQL语句不返回结果,如
           //INSERT, DELETECREATE TABLE等语句
end;

解决方案 »

  1.   

    谢谢了,还想问一下:出现如下错误提示为什么?
    ADOQuery1:commandtext does not return a result set.
      

  2.   

    这是因为你在adoquery1里用了delete from table.然后用adoquery1.active:=True; 所以就会出错了。 
      

  3.   

    可是我没有用啊,我只用了一个建立触发器的语句
    create trigger short_insert on short for insert as....
    并且每次执行的时候都提示short_insert对象已经存在?这又是为什么?
      

  4.   

    我以前用这条语句的时候出现这个提示。
    with adoquery1 do
     begin
     active:=false;
     sql.clear;
     sql.add('delete from table1');
     sql.open;  //把其改为sql.execsql 就不会出现问题, 
     end;
      

  5.   

    真的好了,谢谢!
    我用了一个触发器建立语句:create trigger short_insert on short for insert as....
    为什么每次执行程序的时候都提示short_insert对象已经存在?