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

时间:2012-06-05 09:28:33

标签: iphone 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中,一切正常。

1 个答案:

答案 0 :(得分:3)

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

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