没有这样的表Sqlite错误iOS

时间:2016-07-15 09:16:32

标签: ios iphone sqlite

我在iOS应用中使用sqlite。我已成功创建登录和注册屏幕和表格。现在,我正在创建另一个表来保存数据。该表已创建,但是当我运行查询以插入值时,我得到以下错误---“没有这样的表:proposalInfo”。有人可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

如果您在终端上创建了数据库,则问题很可能是您从终端访问iOS设备的数据库。通常你将它包含在捆绑包中(并确保你有一个针对相应目标的复选标记),然后你有代码在Documents中查找数据库,如果找不到它,从中复制它捆绑到文档。典型的问题是该逻辑中的简单错误(可能在之前的开发迭代中),它无法正确复制它,然后调用sqlite3_open来创建空白数据库。

可能,在此过程的某个地方,没有足够的错误检测/报告,因此一些错误未被检测到并且创建了空白数据库。所以,我建议:

  • 从设备中删除app(删除Documents文件夹中的任何空白数据库,如果有的话);

  • 仔细检查错误检测/报告(例如,检查所有NSFileManager方法返回码和NSError个对象);

  • 不要使用sqlite3_open,而是使用sqlite3_open_v2,以便它永远不会创建空白数据库(即使用SQLITE_OPEN_READWRITE选项,但不是 SQLITE_OPEN_CREATE);以及

  • 再次运行应用程序,看看您是否可以确定进程中出错的位置。

顺便说一句,如果您不相信我们数据库中确实缺少该表,我建议您从macOS SQLite工具打开模拟器的数据库,然后确认。所以

  • 导航到模拟器的Documents文件夹:

      

    〜/库/开发商/ CoreSimulator /设备/ [GUID] /数据/容器/数据/应用/ [GUID] /文件

  • 在SQLite终端界面中打开该数据库,并确认相关表格的存在与否。

答案 1 :(得分:-1)

请使用SQLite浏览器创建表格。您可以从here下载哪个。 然后按照以下步骤

1)点击

打开您的项目数据库

2)创建表格查询或使用UI。

3)执行任何您想要的查询。