2011-06-30 64 views
0

我應該創建一個查詢傳遞給sqlite3_prepare_v2。objective c創建動態查詢傳遞給sqlite3_prepare_v2

查詢必須是動態的,並且必須允許我檢索至少包含一個搜索過濾器的所有記錄。

例如: -fields是F1,F2 -filters是SF1,SF2

我需要動態地創建: 其中,f1 LIKE '%SF1%' 或F1 LIKE '%SF2%' 或f2的如'%SF1%'或f2''%sf2%'

您可以顯示我描述的代碼嗎?

在此先感謝您的回覆。

回答

0
selectStmt = nil; 

NSString strParam1 = @"%SF1%"; 
NSString strParam2 = @"%SF2%"; 

const char *selectSql; 

//prepare select statement 
if(sqlite3_prepare_v2(database, sqlStatement, -1, &selectStmt, NULL) == SQLITE_OK) 
{ 
//Bind your parameter 
sqlite3_bind_text(selectStmt, 1, [strParam1 UTF8String], -1, SQLITE_TRANSIENT); 
sqlite3_bind_text(selectStmt, 2, [strParam2 UTF8String], -1, SQLITE_TRANSIENT); 

    while(sqlite3_step(selectStmt) == SQLITE_ROW) 
    { 
     //Read your values from database 
     NSString *f1Value = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectStmt, 0)]; 
     NSString *f2Value = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectStmt, 1)]; 

    } 
} 
+0

感謝,我通過連接nsmutablestrings解決了,然後我做: 的char *更改爲MyQuery = UTF8字符串mynsmutablestring] 使用sqlite3_bind的是最好的方法? – longy

+0

很高興幫助你。 –