自定义函数Android SQLite返回null

时间:2015-08-05 15:18:16

标签: android sqlite

我正在使用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);
}

1 个答案:

答案 0 :(得分:1)

在SQLite C API中,结果值将使用sqlite3_result_*() functions之一设置。

Android数据库API没有调用这些函数的机制。