我尝试在xamarin
中执行此查询SELECT * FROM GPSPoint WHERE SQRT( POW({0}-lat,2) + POW({1}-lng,2) ) < 5*5
但它给了我错误信息
SQLite.SQLiteException: no such function: SQRT
搜索后我发现 Android 开发人员可以使用sqlite3_create_function方法在SQLite中创建新功能。
我怎样才能在xamarin中做同样的事情?
答案 0 :(得分:0)
在下面的示例中,我将自定义sqlite函数称为 MySqliteAdd ,其中有两个参数作为输入,它们的和为结果
[SqliteFunction(FuncType = FunctionType.Scalar, Arguments = 2, Name = "MySqliteAdd")]
public class MySqliteAdd : SqliteFunction
{
public override object Invoke(object[] args){
return System.Convert.ToInt32(args[0]) + System.Convert.ToInt32(args[1]);
}
}
您可以在如下所示的sqlite查询中使用它
Select MySqliteAdd(25,35)
这将给您60的结果
最后,您必须在初始化连接之前注册该功能
SqliteFunction.RegisterFunction(typeof(MySqliteAdd));