将数据从.csv文件导入到 IOS 中的 sqlite 数据库.FMDB.



在我的应用程序中,我需要将数据从csv文件导入到sqlite数据库中。

对于使用sqlite,我使用FMDB库,因为它易于使用:)

请帮帮我,如何将数据从CSV文件导入到表中?

我创建了一个表,对应于

csv文件中的表,因此导入应该很容易。

我查看了互联网上的解决方案,并找到了 sqlite 的终端命令,例如

".mode csv"
".separator ';'"
".import mycsvfile.csv mytablename"

但是当我尝试在 FMDB 中执行此 sql 语句时,它失败了。

我的源代码:

   [db beginTransaction];
   NSString *query1 = @".mode csv";
   NSString *query2 = @".separator ';'";
   NSString *query3 = @".import mycsvfile.csv mytablename";
   BOOL result = [db executeUpdate:query];
   result = [db executeQuery:query2];
   result = [db executeQuery:query3];
   [db commit];

这里在单步跳过 BOOL 结果 = [db executeUpdate:query];结果等于 FALSE,表示它是错误。

在 FMDB 中打开日志记录后,它在我的查询中显示"语法不正确"。

但是为什么这个语句在OS X的sqlite中有效呢?

注意:当我尝试在 OS X 终端中执行此命令时,在 sqlite3 中,一切正常。

你正在使用的.import命令不是SQLite本身的一部分,而是SQLite CLI(命令行界面)shell的一部分。 此工具的文档在这里。 您可以从 sqlite.org 下载 CLI 工具的源代码(我认为文件是 shell.c)作为 SQLite 发行版的一部分。

如果要将iOS应用程序中的CSV数据导入SQLite,则需要自己手动解析CSV文件,并将数据插入SQLite数据库的表中。

最新更新