如何调用 sqlite3_errmsg 了解 sqlite3_prepare_v2 失败的原因

2024-02-08

基于C的函数sqlite3_prepare_v2返回 1。我只是想以可读的形式了解错误消息并更正我的代码。我是从 raywinderlich 博客中将其作为教程学习的。我遇到过sqlite3_errmsg我不知道如何使用sqlite3_errmsg功能。

虽然有人问了同样的问题here https://stackoverflow.com/questions/24286259/sqlite3-prepare-v2-failing,不幸的是仍然没有答案。

我想知道错误和纠正将不胜感激。谢谢。

- (NSArray *)failedBankInfos {
    NSMutableArray *retval = [[NSMutableArray alloc]init];
    NSString *query = @"SELECT id, name, city, state FROM failed_banks ORDER BY close_date DESC";
    sqlite3_stmt *statement;
    int tmp  = sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil);
    NSLog(@"%i",tmp); // printing 1
    if (sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil)
        == SQLITE_OK) {
        while (sqlite3_step(statement) == SQLITE_ROW) {
            int uniqueId = sqlite3_column_int(statement, 0);
            char *nameChars = (char *) sqlite3_column_text(statement, 1);
            char *cityChars = (char *) sqlite3_column_text(statement, 2);
            char *stateChars = (char *) sqlite3_column_text(statement, 3);

            NSString *name = [[NSString alloc] initWithUTF8String:nameChars];
            NSString *city = [[NSString alloc] initWithUTF8String:cityChars];
            NSString *state = [[NSString alloc] initWithUTF8String:stateChars];
            NSLog(@"name is  : %@",name);
             NSLog(@"city is : %@",city);
            FailedBankInfo *info = [[FailedBankInfo alloc]
                                    initWithUniqueId:uniqueId name:name city:city state:state];
            [retval addObject:info];
        }
        sqlite3_finalize(statement);
    }
    else
    {
        // if part is failing and control is arriving in else.
    }
    return retval;

}

您可以使用sqlite3_errmsg() like:

NSLog(@"Database Error Message : %s", sqlite3_errmsg(_database));

您也可以使用sqlite3_errstr().

sqlite3_errmsg() 和 sqlite3_errmsg16() 返回英语 描述错误的文本,分别为 UTF-8 或 UTF-16。 保存错误消息字符串的内存是内部管理的。这 应用程序不需要担心释放结果。然而, 错误字符串可能会被后续的覆盖或释放 调用其他 SQLite 接口函数。

sqlite3_errstr() 接口返回英语文本 描述结果代码,如 UTF-8。用于保存错误消息的内存 字符串在内部管理,不能由应用程序释放。

参考SQLite 错误消息 http://www.sqlite.org/c3ref/errcode.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何调用 sqlite3_errmsg 了解 sqlite3_prepare_v2 失败的原因 的相关文章

随机推荐

  • 使用 nginx/gunicorn 进行 Django 文件上传 - 媒体权限

    我试图允许 django 站点的用户通过模型上的 FileField 将文件 主要是 PDF 上传到我的服务器 但是 当我尝试使用我的模型表单生成的上传字段时 我不断遇到 Errno 13 Permission Denied 我在四处寻找时
  • ConcurrentDictionary.GetOrAdd 真的是线程安全的吗?

    我有这段代码 如果该任务是为相同的输入创建的 我想等待正在进行的任务 这是我正在做的事情的最小再现 private static ConcurrentDictionary
  • Jetty SSL 配置 Apache karaf

    我正在尝试配置 Jetty 以在 Apache Karaf OSGI 容器中使用 SSL http 有效 但 https 无效 可能是什么问题呢 我的配置详细信息如下 等 jetty xml
  • 在 Weblogic 中配置容器管理的安全性

    有人知道这方面的任何指南吗 我是 weblogic 和容器管理安全性的新手 我已经做的是 在 Weblogic 中设置 LDAP 身份验证器 在 Eclipse 中创建一个简单的 Web 应用程序 配置 web xml 添加了 securi
  • 使用 ClassFileTransformer.transform 进行字节码检测

    我写了一个类premain方法并在该方法中我添加了一个ClassFileTransformer to Instrumentation Instrumentation addTransformer 我已经使用调用了一个应用程序 java ja
  • Django 中的对象所有权

    我想知道如何使用 django 模型完成一个简单的 对象所有权 系统 这样默认情况下 只有对象的所有者可以编辑它 我试图允许 管理 组代表对象所有者编辑所有对象 并且此时添加了自定义权限 class Meta permissions man
  • MS Excel 从上到下查找列

    我在寻找 LOOKUP 从上到下搜索列的方法时遇到问题 情况是这样的 我需要为 Excel 创建一个公式来搜索句子中的硬件部分 例子 句子 A1 客户电脑无法开机 检查主板 主板故障 更换主板 PSU 电量不足 更换电源 这是查找范围列 硬
  • 如何在角度组件 Angular 1.5 及以上版本中使用 $compile

    我正在从指令迁移到组件 但使用 compile As 时出现错误 compile ReturnDomElement scope 应该使用什么来代替 scope 因为我没有在我的组件中注入 scope None
  • 在docker环境中设置子域

    我在家里的 Ubuntu 服务器 14 04 Trusty Tahr 上的 Docker 容器中运行不同的服务 我目前的设置如下 詹金斯 jenkins slarti gitlab slarti 下的 Gitlab 和 Leanlabs i
  • 使用 scipy.sparse.csc_matrix.toarray() 将稀疏矩阵转换为数组时出错

    我有一个scipy sparse csc matrix http docs scipy org doc scipy reference generated scipy sparse csc matrix html我正在尝试将其转换为数组sc
  • 最小覆盖和功能依赖性

    考虑到以下功能依赖性 我将如何计算最小覆盖范围 A gt B ABCD gt E EF gt GH ACDF gt EG 在讲义中 它给出了最小覆盖率的推导 但我不明白它 例如为了摆脱ACDF gt E A gt B gt AACD gt
  • 更改 Android 操作栏按钮样式

    我目前正在改变对我的看法ActionBar MenuItem像这样 MenuItem menuItem menu add title TextView tv new TextView context tv setTypeface myTyp
  • Xamarin Forms 选择器的默认值

    我想在打开页面时获取第一个数据 但没有 我不知道我哪里犯了错误 有人可以帮忙吗 这是我的守则 Xaml
  • 按嵌套属性对对象的对象进行排序

    我有一个如下所示的对象 如何根据嵌套对象中的公共属性对类似的内容进行排序 我期望的输出是玩家 2 根据较高的分数排在第一位 我的挑战是访问每个对象的属性进行排序 这是我的想法和尝试 但它没有进行排序 Object keys data sor
  • 奇怪的错误 C2275 ...非法使用此类型作为具有成员函数模板和 lambda 的表达式

    Summary 由于某种原因 我调用 lambda 函数的成员函数模板无法编译错误 C2275 非法使用此类型作为表达式 但是当该函数被移出为自由函数时 它可以正确编译 Details 首先我有一个基类function中的实例vector
  • “未知”PHP 错误 - 这是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 如何修复 PHP 中的 标头已发送 错误 https stackoverflow com questions 8028957 how to fix headers already sent error
  • 使用 Jackson JSON 在 Spring MVC 中解析 JSON

    好吧 我已经研究这个有一段时间了 不再继续了 我有一个 Spring MVC servlet 我需要从 JavaScript 前端 Web 应用程序接受 JSON 为了解析 JSON 我需要使用 Jackson 我需要获取 JSON 中的值
  • 使用 Xamarin.Forms(xaml 和 c#)创建超链接

    我基本上想使用标签类在 Xamarin Forms 中创建超链接 基本上 我想通过以下链接将用户带到网络浏览器中的 google com
  • 在调试模式下调用函数时,GDB 崩溃

    我正在尝试使用 MinGW 在 Windows 上制作一个 C 程序 构建的程序运行正常 但是在调试时出现问题 调试时 如果我尝试检查函数或方法的执行结果 如下面的屏幕截图 GDB 会被强制终止 我已经将 GDB 作为命令行运行 但结果是相
  • 如何调用 sqlite3_errmsg 了解 sqlite3_prepare_v2 失败的原因

    基于C的函数sqlite3 prepare v2返回 1 我只是想以可读的形式了解错误消息并更正我的代码 我是从 raywinderlich 博客中将其作为教程学习的 我遇到过sqlite3 errmsg我不知道如何使用sqlite3 er