Вопрос универсального приложения БД - PullRequest
0 голосов
/ 19 июля 2011

Я делаю универсальное приложение для iPhone и iPad, и мне было интересно, есть ли конкретное место, где я должен разместить свою базу данных sqlite?Потому что, по-видимому, он не может найти его и приводит к невозможности открыть базу данных!= приложение не работает: /

В настоящее время моя база данных находится в папке «Другие источники».

//Maakt een lijst  van path strings voor de specifieke directories voor de specifieke domains.
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//Eerste object van paths wordt in de string gezet!
NSString *documentsDir = [documentPaths objectAtIndex:0];
//er wordt gezocht naar todo.sqlite in het opgegeven path!
NSString *databasePath = [documentsDir stringByAppendingPathComponent:@"todo.sqlite"];
pad = databasePath;

if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
    status = TRUE; //DEBUG PURPOSES ONLY!
    const char *sql = "SELECT pk FROM todo";
    sqlite3_stmt *statement;

    if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
        while (sqlite3_step(statement) == SQLITE_ROW) {
            int primaryKey = sqlite3_column_int(statement, 0);
            Taak *taak = [[Taak alloc] initWithPrimaryKey:primaryKey database:database];
            [taken addObject:taak];
            [taak release];
        }
    }

    sqlite3_finalize(statement);
}else {
    status = FALSE; //DEBUG PURPOSES ONLY!
    sqlite3_close(database);
    NSAssert1(0, @"Failed to open database with message '%s'.", sqlite3_errmsg(database));
}

Это мой код подключения, и я искал много форумов и учебных пособий, и вседелает это так!

1 Ответ

0 голосов
/ 12 июля 2012
if(sqlite3_open([databasepath UTF8String], &database) == SQLITE_OK) {
        const char* sqlStatement; 
        sqlStatement="select fld_carromdescription from tbl_carrom where fld_carromdetails like?";

        sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL);
        printf( "could not prepare statemnt: %s\n", sqlite3_errmsg(database));

        if( sqlite3_prepare_v2(database, sqlStatement, -1, & compiledStatement, NULL) == SQLITE_OK ) {
            sqlite3_bind_text(compiledStatement,1,[[usdflt objectForKey:@"phone"] UTF8String] , -1,SQLITE_STATIC);
            NSLog(@"Database check111");
            //  [tablearray removeAllObjects];
            while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
                printf("in loop");

                @try {
                    NSLog(@"Database check");
                    txtview.text=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)];
                    toplbl.text=[usdflt valueForKey:@"phone"];
                    [txtview scrollRangeToVisible:NSMakeRange(0, 0)];
                }

                @catch (NSException * e) {

                }
                @finally {

                }

            }
        }
        sqlite3_finalize(compiledStatement);

    }

    sqlite3_close(database);
}

Попробуйте это.

Я также использую sqliteDB in other sources only.Я сделал 3 универсальных приложения.У меня нет трудностей с получением доступа.

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