【问题标题】:sqlite3_open cannot open file at linesqlite3_open 无法在行打开文件
【发布时间】:2019-10-21 00:29:17
【问题描述】:

我正在使用 swift 和 c++ sqlite 数据库制作一个 ios 应用程序。我的问题是当我在 xcode 中运行代码时,尝试在 c++ 文件中打开数据库时出现错误。 [logging-persist] 无法在 [95fbac39ba] 的第 42263 行打开文件

我试图获取正确的文件路径,就像我们如何在 swift 中使用 sqlite 一样,只是将该路径复制并粘贴到 c++ 文件,但它不起作用。我得到的文件路径是/Users/racelab/Library/Developer/CoreSimulator/Devices/1B9AB8BA-C000-42CC-8588-211E0928722F/data/Containers/Data/Application/F4C2A19E-10C5-4474-8DFD-D4105C859A19/Documents/buildings。分贝

double Database::getLatitude(const char* nameOfBuilding){
int exit = 0;

exit = sqlite3_open("buildings.db", &db);

我希望获得正确的文件路径,以便我可以打开 sqlite3 数据库。

【问题讨论】:

  • 这是一个 swift 还是 c++ 的问题?看起来您的数据库位于用户文档文件夹中。
  • 我在 xcode 上使用 swift 开发了一个 ios 应用程序,但我的课程要求我们需要在其中包含一些 c++ 部分,所以我们决定用 c++ 制作数据库,应用程序将只访问数据库以提取信息。我有 building.db,数据库文件与其他 swift 文件位于同一文件夹中,并且还在 xcode 项目中添加了该文件。
  • @JoonLee 你找到解决方案了吗?

标签: c++ ios swift sqlite


【解决方案1】:

你只需要传递数据库路径而不是名称

exit = sqlite3_open(DB_PATH, &db);

使用fileSystemRepresentation将字符串路径转换为char*

[strPath fileSystemRepresentation];

【讨论】:

  • 如何在 c++ 文件中找到 DB_PATH?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-03
  • 1970-01-01
相关资源
最近更新 更多