在我的应用程序中,我需要将数据从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数据库的表中。