2012-06-05 142 views
2

在我的應用程序中,我需要從csv文件導入數據到sqlite數據庫。將.csv文件中的數據導入到IOS中的sqlite數據庫。 FMDB

對於SQLite的工作,我使用FMDB圖書館,因爲它很容易使用:)

請幫助我, 如何從CSV文件導入數據到一個表?

我有一個表創建,對應於csv文件中的表,所以它應該很容易導入。

我看了看周圍的互聯網解決方案,並發現終端命令的源碼如

".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中,所有工作都正常。

+0

你能不能顯示你的.csv文件結構.. –

+0

嗨!我通過逐行手動讀取csv文件並使用該數據執行sqlite插入語句來解決此問題。 –

+0

如果有人仍然對解決方案感興趣,現在有一個用於將CSV導入到SQLite的開源庫 - https:// github。 com/dodikk/CsvToSqlite –

回答

3

您使用的.import命令不是SQLite本身的一部分,而是SQLite CLI(命令行界面)shell的一部分。該工具的文檔是here。您可以下載CLI工具的源代碼(文件是shell.c,我認爲),作爲sqlite.org的SQLite發行版的一部分。

如果您想將iOS應用中的CSV數據導入到SQLite中,您需要自己手動解析CSV文件,並將數據插入到SQLite數據庫的表中。

+0

謝謝,我同意:) –

相關問題