我正在尝试创建一个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.
有关问题可能是什么的任何建议?
答案 0 :(得分:0)
您的触发器尝试访问数据库中名为testing的函数,显然它不存在。因此,您应该检查数据库方案中是否存在该函数。尝试手动调用它。如果它不存在,请执行它。