在Native代码中创建动态sqlite查询

时间:2011-10-21 21:59:18

标签: android sqlite

我正在开发一个Android应用程序,我正在使用一些Native c ++代码。在本机代码中,我正在查询sqlite数据库并将结果发送到Java中的调用函数。问题是我的sqlite查询必须是动态的,具体取决于本机代码中int变量的值。所以基本上,查询不是普通字符串,但必须在将其发送到sqlite之前与int变量结合使用。

我在构建查询时需要帮助。

任何帮助都将不胜感激。

谢谢, ABHI

2 个答案:

答案 0 :(得分:0)

不清楚int是否真的是int,或者用作索引,但肯定会有以下其中一项有效:

char *baseQuery = "SELECT * FROM myTable WHERE field=%d";
char *finalQuery = asprintf(baseQuery, magicInt);

或者,

char *magicStrings[4] = { "fish", "apple", "penguin", "rutabaga" };
char *baseQuery = "SELECT * FROM myTable WHERE field='%s'";
char *finalQuery = asprintf(baseQuery, magicStrings[magicInt]);

然后执行finalQuery

中的查询

答案 1 :(得分:0)

我得到了这个工作。变量“LongInt”是带符号的long long变量,它保存10-12位整数。

char afterTime[100] = "SELECT _id FROM Picture where Time>%lld";
char afterTemp[100];
sprintf(afterTemp, "%lld", LongInt);
strcat(afterTime, afterTemp);

它工作正常!我正在寻找替代解决方案。

谢谢, 抗体