Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IPhone-创建内存中数据库_Iphone_Database_Sqlite_In Memory - Fatal编程技术网

IPhone-创建内存中数据库

IPhone-创建内存中数据库,iphone,database,sqlite,in-memory,Iphone,Database,Sqlite,In Memory,sqlite能够创建内存中的数据库,但它可以在iPhone中完成吗 这是sqlite中的文档状态 我试过了,但失败了。它成功地创建了数据库,但未能创建表。 下面是我的代码: -(BOOL) open{ NSString *path = @""; if(sqlite3_open([path UTF8String], &database_) == SQLITE_OK) { //bFirstCreate_ = YES; NSLog(@"ope

sqlite能够创建内存中的数据库,但它可以在iPhone中完成吗

这是sqlite中的文档状态

我试过了,但失败了。它成功地创建了数据库,但未能创建表。 下面是我的代码:

-(BOOL) open{

    NSString *path = @"";
    if(sqlite3_open([path UTF8String], &database_) == SQLITE_OK) {
        //bFirstCreate_ = YES;
        NSLog(@"open == YES");
        [self createChannelsTable:database_];
        return YES;
    } else {
        sqlite3_close(database_);
        NSLog(@"Error: open database file.");
        return NO;
    }
    return NO;
}


- (BOOL) createChannelsTable:(sqlite3*)db{

    NSString *comment = [[NSString alloc] init];
    comment = @"CREATE TABLE Temp(Name text, Address text}";
    sqlite3_stmt *statement;
    if(sqlite3_prepare_v2(db, [comment UTF8String], -1, &statement, nil) != SQLITE_OK) {
        NSLog(@"Error: failed to prepare statement:create channels table");
        return NO;
    }
    int success = sqlite3_step(statement);
    sqlite3_finalize(statement);
    if ( success != SQLITE_DONE) {
        NSLog(@"Error: failed to dehydrate:CREATE TABLE channels");
        return NO;
    }
    NSLog(@"Create table 'channels' successed.");

    return YES;
}

您是否可能在SQL命令字符串中缺少分号,并且结尾“}”而不是“')”错误

在“Address text}”之后需要一个分号,因此它变成:

comment = @"CREATE TABLE Temp(Name text, Address text);";
我认为在创建NSString“comment”时也会出现内存泄漏。初始化它,然后在使用assign语句时告诉注释指针存储另一个字符串

您可以在1中执行这两个步骤,如下所示:

NSString *comment = [[NSString alloc] initWithString:@"CREATE TABLE Temp(Name text, Address text}";
NSString *comment = [[NSString alloc] initWithString:@"CREATE TABLE Temp(Name text, Address text}";