2

在我的应用程序中,我需要将 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 result = [db executeUpdate:query]; 结果等于FALSE,表示它是错误的..

打开登录 FMDB 后,它在我的查询中显示“语法不正确”。

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

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

4

1 回答 1

3

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

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

于 2014-05-01T18:45:00.087 回答