我正在开发一个Android应用程序,我正在使用一些Native c ++代码。在本机代码中,我正在查询sqlite数据库并将结果发送到Java中的调用函数。问题是我的sqlite查询必须是动态的,具体取决于本机代码中int变量的值。所以基本上,查询不是普通字符串,但必须在将其发送到sqlite之前与int变量结合使用。
我在构建查询时需要帮助。
任何帮助都将不胜感激。
谢谢, ABHI
答案 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);
它工作正常!我正在寻找替代解决方案。
谢谢, 抗体