【问题标题】:Insert problem in XcodeXcode中插入问题
【发布时间】:2011-04-06 13:26:02
【问题描述】:

实际上我不确定是否有问题,但是我有一些数据,我想将其插入数据库。

代码似乎运行良好,每条语句都运行,没有显示错误,但我看不到数据库中的数据。它不会将数据插入数据库,而是在代码中显示为插入数据。

是否有与数据库相关的设置?我正在使用 Sqlite Firefox 插件。 选择记录时没有问题。我检查了 .sqlite 文件的权限,但它被设置为读写。

对不起,我忘记添加代码sn-p;

   NSString *stmt=[NSString stringWithFormat:@"INSERT INTO t_exam_applies(user_id,exam_id, apply_correct, apply_wrong, apply_empty, apply_start, apply_end) VALUES(%d, %d, %d, %d, %d, %d, %d)", 0,exam_id,0,0,0,0,0];
        [stmt UTF8String];
        const char *sql=(const char *) [stmt UTF8String];
        //const char *sql= "INSERT INTO t_exam_applies(user_id,exam_id, apply_correct, apply_wrong, apply_empty, apply_start, apply_end) VALUES(?,?,?,?,?,?,?)";

    sqlite3_stmt *statement;

    sqlite3_prepare_v2(database, sql, -1, &statement, NULL);

    if (sqlite3_step(statement) == SQLITE_DONE)
        NSLog(@"SQLITE statement executed");
    else 
        NSLog(@"ERROR!!");

    sqlite3_finalize(statement);

【问题讨论】:

  • 您有未提交的交易吗?

标签: xcode ios insert sqlite


【解决方案1】:

鉴于这是为 iPhone 开发人员标记的,我建议为 FMDB 之类的 sqlite 使用客观的 c 包装器。 FMDB 非常轻量级并且被广泛使用(在 github 上查看:https://github.com/ccgus/fmdb/)并将为您简化整个过程。

这是一个使用 FMDB 进行简单插入的示例:

self.db = [FMDatabase databaseWithPath:fullPath];

 if (![db open]) {
     NSLog(@"DB Open Failed");
     return NO;
 }

[db executeUpdate:@"INSERT INTO TestTable (id, value) VALUES (?,?)", [NSNumber numberWithInt:1], @"SomeString"];

[db close];

【讨论】:

    【解决方案2】:

    也许您在添加数据时发送 nil 消息(假设您使用 Obj-C)?这不是一个错误,但它也没有做任何事情。需要更多信息或代码 sn-p 以获得更具体的答案。

    【讨论】:

      猜你喜欢
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      相关资源
      最近更新 更多