в то время как (sqlite3_step (оператор) == SQLITE_ROW) никогда не выполнялся? - PullRequest
0 голосов
/ 10 мая 2011

в то время как цикл (sqlite3_step (оператор) == SQLITE_ROW) не выполняется, кто-нибудь может помочь?

NSLog(@" %d, %d ",sqlite3_step(statement),SQLITE_ROW); вывод всегда 21 100

sqlite3_stmt *statement;
    sqlite3 *database;
if (sqlite3_open("myDB.sql", &database) == SQLITE_OK) {
    NSLog(@"1 %d",SQLITE_OK);
NSLog(@" %d, %d ",sqlite3_step(statement),SQLITE_ROW);       
        const char *sql = "SELECT myName FROM myTable";
        if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
            while (sqlite3_step(statement) == SQLITE_ROW) {   
                int primaryKey = sqlite3_column_int(statement, 0);

            }
        }

        if (statement) {
            sqlite3_finalize(statement);
        }
    } 

Ответы [ 2 ]

1 голос
/ 10 мая 2011
Try This,



sqlite3_stmt *statement;
        sqlite3 *database;
        NSString *sqLiteDb = [[NSBundle mainBundle] pathForResource:@"myDB" 
                ofType:@"sql"];

            if (sqlite3_open([sqLiteDb UTF8String], &database) != SQLITE_OK) {
                NSLog(@"Failed to open database!");
            }
            NSLog(@" %d, %d ",sqlite3_step(statement),SQLITE_ROW);       
            const char *sql = "SELECT myName FROM myTable";
            if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
                while (sqlite3_step(statement) == SQLITE_ROW) {   
                    int primaryKey = sqlite3_column_int(statement, 0);

                }
            }
            else {
                 sqlite3_close(database);
                 NSLog(@"Failed to open database with message '%s'.", sqlite3_errmsg(database));
            }

            if (statement) {
                sqlite3_finalize(statement);
            }
        }

Вот несколько ссылок для справки.

0 голосов
/ 10 мая 2011
sqlite3 *database;

    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 
    {   
    NSString *sqlStatement = [NSString stringWithFormat:@""SELECT myName FROM myTable"];
      sqlite3_stmt *compiledStatement;
    if(sqlite3_prepare_v2(database, [sqlStatement cStringUsingEncoding:NSUTF8StringEncoding],-1,&compiledStatement, NULL) == SQLITE_OK) 
        {
            NSLog(@"%@",sqlStatement);

            if (sqlite3_step(compiledStatement) == SQLITE_ROW) 
            {
int primaryKey = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0 )]intValue] ;
            }       
        }
        sqlite3_finalize(compiledStatement);

        sqlite3_close(database);
    }       
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...