私のアプリケーションでは、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]; result は FALSE に等しく、エラーであることを示します。
FMDB でログを有効にした後、クエリで「構文が正しくありません」と表示されます。
しかし、なぜこのステートメントは OS X の sqlite で機能するのでしょうか?
注: OS X ターミナルの sqlite3 でこのコマンドを実行しようとすると、すべて正常に動作します。