无法通过Delphi ADO创建存储过程/触发器

时间:2013-01-29 09:20:07

标签: sql-server oracle delphi oledb ado

我的Delphi应用程序在MSSQL和Oracle数据库中创建过程和触发器。当我们将程序插入Oracle DB时,我们使用ADO作为数据访问层,使用Oracle.ole DB(oraoleDB.oracle.1)作为提供程序。一些触发器/过程成功执行,但有些则没有。但是,执行命令时,ADO组件没有错误。但它们根本就不是在数据库中创建的。以下是示例代码:

    procedure CreateTriggers
    var
     qry : TADOCommand;
     begin

      qry := TADOCommand.Create(self);
      try
       qry.Connection := MyconnectionString 
      // something like this
      //(Provider=OraOLEDB.Oracle;Data Source=xxx;User ID=xxx;Password=xx;
      //Extended properties="NDatatype=true")

       qry.ParamCheck := false;
       qry.CommandText := MyMemo.Text;
       qry.Execute;
     finally
      qry.free
    end;
   end;

备忘录/触发器中的文字是这样的:

  Create Or Replace Trigger
  MYTrigger
  Before Update
  On
  MyTable
  Referencing
   New As MyNew
   Old As MyOld
  For Each Row
  Declare
   v_new_updatecount MyTable.UPDATECOUNT%TYPE;
  Begin
   GET_NEW_UPDATECOUNT(:MyOld.UPDATECOUNT, v_new_updatecount);

  :MyNew.UPDATECOUNT := v_new_updatecount;
 End;

任何建议出了什么问题?

0 个答案:

没有答案