Excelシートに入力されたテキストと画像をSQLiteデータベースに登録する(4)
ちょっと脱線。SQLiteの日本語パスの取り扱いに注意
その前に、ここで一つハマったポイントを書いておきます。
sqlite3.exe を起動する際、引数に日本語が含まれたパスを指定すると、認識してくれません。
コマンドプロンプトで試してみるとわかります。
C:\>sqlite3 C:\テスト\test.db SQLite version 3.7.10 2012-01-16 13:28:40 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> CREATE TABLE table2 ( id INTEGER, dat BLOB); Error: unable to open database "C:\テスト\test.db": unable to open database file C:\>
この場合は、DBファイルがある場所まで CD してから、ファイル名だけを指定すれば回避できます。
ファイル名には日本語を含めてはいけません。日本語が含まれているとファイル名が化けてしまいます。
実際に試してみました。(環境:Windows XP SP3)
Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\user>cd C:\テスト C:\テスト>C:\sqlite3.exe テスト.db SQLite version 3.7.10 2012-01-16 13:28:40 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> CREATE TABLE table2 (id INTEGER, dat BLOB); sqlite> .exit C:\テスト>dir ドライブ C のボリューム ラベルは SYSTEM です ボリューム シリアル番号は 8899-BBA0 です C:\テスト のディレクトリ 2012/02/23 17:21 <DIR> . 2012/02/23 17:21 <DIR> .. 2012/02/23 17:21 2,048 eXg.db 1 個のファイル 2,048 バイト 2 個のディレクトリ 12,610,568,192 バイトの空き領域 C:\テスト>
「テスト.db」を指定したつもりが、作成されたファイルは「eXg.db」となってます。
ダメダメです。