2011-10-21 22 views
0

我正在使用一些本機C++代碼的android應用程序。在本地代碼中,我正在查詢sqlite數據庫並將結果發送給Java中的調用函數。問題是我的sqlite查詢必須是動態的,取決於本地代碼中的int變量的值。所以基本上,查詢不是純字符串,但必須在將它發送到sqlite之前與int變量結合使用。在本機代碼中創建動態sqlite查詢

我需要幫助構建查詢。

任何幫助,將不勝感激。

感謝, ABHI

回答

0

我得到了這個工作。變量「LongInt」是有符號長long變量,它保存10-12位整數。

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

它工作正常!我正在同時尋找替代解決方案。

謝謝, Ab

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

+0

好的。這聽起來像我在找什麼。將貫穿它並寫回結果。謝謝! –

+0

,如果整數是一個有符號的long long,它會是%lld,是正確的? –