Sqlite3 bind text: передача двух значений в строке не работает. - PullRequest
0 голосов
/ 06 декабря 2011
    productName = @"'Fidelity Bonds',Property'";
    regionName = @"'London',Paris',Tokyo'";
    yearName = @"'2007',2010'";

    sqlite3 *database;
    const char *sqlStatement;
    sqlite3_stmt *compiledStatement;
    [self setPathForDatabase];

    if(sqlite3_open([storePath UTF8String], &database) == SQLITE_OK) 
    {         

       sqlStatement = "Select * from PorfolioPerformanceCPR where product_name IN (?) and region_name IN (?) and year_name IN (?)  group by channel_name";

        if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) 
       {        
                 sqlite3_bind_text(compiledStatement, 1, [productName UTF8String], -1, SQLITE_TRANSIENT);
                 sqlite3_bind_text(compiledStatement, 2, [regionName UTF8String], -1, SQLITE_TRANSIENT);
                 sqlite3_bind_text(compiledStatement, 3, [yearName UTF8String], -1, SQLITE_TRANSIENT);
        }

Вопрос: код не работает, когда я вставляю более одного значения в строки productName, regionName и yearName. Нужна помощь.

1 Ответ

0 голосов
/ 06 декабря 2011

Похоже, что проблема может заключаться в одинарных кавычках внутри строк productName, regionName и yearName:

productName = @"'Fidelity Bonds',Property'";
regionName = @"'London',Paris',Tokyo'";
yearName = @"'2007',2010'";

Вы пробовали:

productName = @"'Fidelity Bonds','Property'";
regionName = @"'London','Paris','Tokyo'";
yearName = @"'2007','2010'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...