我的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;
任何建议出了什么问题?