具有用户定义函数的SQLite触发器

时间:2014-02-20 15:37:45

标签: c# sqlite triggers

我正在尝试创建一个SQLite触发器来调用C#中的函数。更新表中的一列后,应调用该函数。

该功能定义如下:

public class TestingFunction<T1> : SQLiteScalarFunction<T1, string>
{
     public TestingFunction() : base("testing") { }

     protected override string Execute(T1 arg1, SQLiteConnection connection)
     {
         //.. do some work
     }
}

并注册:

SQLiteConnection sqLiteConnection = new SQLiteConnection(@"Data Source=" + settings.db_source);
sqLiteConnection.Open();
TestingFunction<string> function = new TestingFunction<string>();
sqLiteConnection.RegisterFunction(function);

触发器:

create trigger trigger1 update of act_cost on tunnels
begin
   select testing(db_source);
end;

更新表时,我收到SQLite错误:no such function: testing.

有关问题可能是什么的任何建议?

1 个答案:

答案 0 :(得分:0)

您的触发器尝试访问数据库中名为testing的函数,显然它不存在。因此,您应该检查数据库方案中是否存在该函数。尝试手动调用它。如果它不存在,请执行它。