0

我应该创建一个查询以传递给 sqlite3_prepare_v2。

查询必须是动态的,并且必须允许我检索至少在一个字段中包含至少一个搜索过滤器的所有记录。

例如:-fields 是 f1, f2 -filters 是 SF1, SF2

我需要动态创建: where f1 like '%SF1%' or f1 like '%sf2%' or f2 like '%SF1%' or f2 like '%sf2%'

你能展示我描述的代码吗?

提前感谢您的回复。

4

1 回答 1

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)];

    }
}
于 2011-07-05T09:04:10.857 回答