我正在使用Android SQLite Binding,并且unCidden方法禁用了addCustomFunction方法。我可以看到参数是如何传入的,但是一旦它们被处理,我就不知道如何将它传回去了。
public class Custom implements SQLiteDatabase.CustomFunction {
@Override
public void callback(String[] args) {
String.valueOf(Math.cos(Double.parseDouble(args[0])));
}
}
我正在尝试创建一个cos函数,但每次调用该函数时它都会返回null。这基本上是因为我不知道将结果传递到哪里。
db.execSQL("CREATE TABLE t1(x)");
db.execSQL("INSERT INTO t1 VALUES ('one'), ('two'), ('three')");
Custom custom = new Custom();
db.addCustomFunction("cos",1,custom);
try {
Cursor c = db.rawQuery("SELECT cos(0.5),* FROM t1", null);
if (c != null && c.moveToFirst()) {
res += c.getString(0);
Toast.makeText(this, res, Toast.LENGTH_LONG).show();
}
}
catch (Exception e){
Log.e("EXP","custom",e);
}
答案 0 :(得分:1)
在SQLite C API中,结果值将使用sqlite3_result_*() functions之一设置。
Android数据库API没有调用这些函数的机制。