SQLite批量插入IOS代码示例

本文提供了一个使用C API在iOS中进行SQLite批量插入的代码示例,包括了打开数据库、准备语句、循环绑定数据和执行插入等步骤。在循环中,对于每个记录,分别绑定整数、浮点数和字符串值,然后执行插入操作。最后,确保事务的提交和重置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    SQLite批量插入的IOS 代码示例(因为使用的是C API,C/C++用法与之类似):    
-------------------------代码的分割线-------------------------
// 打开数据库的部分省略
if (![self beginTransaction]) {
    DLog(@ "开始事务失败 ");
    return;
}
sqlite3_stmt* stmt = NULL;
if (sqlite3_prepare(db, [sql UTF8String], -1, &stmt, NULL) != SQLITE_OK) {
      NSLog(@"数据库prepareStatment失败:%@", sql);
    return;
}
for (Record* record in records) {
    int bindPos= 1; // 绑定位置从1开始
    if (sqlite3_bind_int( stmt , (bindPos++),   [record intValue]) != SQLITE_OK) {
        NSLog(@ "绑定失败:%@ ", [[NSString alloc] initWithUTF8String:sqlite3_errmsg( db)]);
        continue;
    }
    if (sqlite3_bind_double( stmt ,   (bindPos++),  [record doubleValue]) != SQLITE_OK) {
        NSLog(@ "绑定失败:%@ ", [[NSString alloc] initWithUTF8String:sqlite3_errmsg( db)]);
        continue;
    }
    if (sqlite3_bind_text( stmt  (bindPos++), [ [record stringValue] UTF8String], -1, SQLITE_STATIC) != SQLITE_OK) {
        NSLog(@ "绑定失败:%@ ", [[NSString alloc] initWithUTF8String:sqlite3_errmsg( db)]);
        continue;
    }
   if (sqlite3_step( stmt ) != SQLITE_DONE) { // 执行插入
        NSLog(@ "%@ ", [[NSString alloc] initWithUTF8String:sqlite3_errmsg(mDB)]);
        continue;
    }
      sqlite3_reset( stmt );   // 清空绑定数据
}
sqlite3_finalize( stmt);
if (![self commitTransaction]) {
    DLog(@ "提交事务失败 ");
    return;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值