A5:SQL Mk-2というデータベースクライアントがあります。

いろんなデータベースに簡単に接続でき、UIも使いやすく、開発、動作確認とよく使わせていただいています。

 

先日、自前のプログラムでSystem.Data.SQLiteを使用し、password=XXXで暗号化して作成したSQLiteデータベースファイルをA5:SQL Mk-2で開けないものかと試行錯誤して解決したので、情報共有させていただきます。

 

自前のプログラム以外ではPupSqliteなどがSystem.Data.SQLiteを使用しているため、PupSqliteでパスワードをかけたSQLiteのデータベースファイルも開けると思います。

 

以下64bitの場合は、適当に64bitに読み替えてください。

 

■準備するもの

1.System.Data.SQLite

https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

 

2.sqliteodbc_dl.exe (末尾にdlがついているほうです)

http://www.ch-werner.de/sqliteodbc/

 

■インストール

1.sqliteodbc_dl.exeをインストールします。

コンパネの管理ツール、ODBCデータソースにSQLite3 ODBC Driverが追加されます。

 

2.C:\Windows\System32にSystem.Data.SQLiteをコピーします。

 

環境としてはこれだけです。

 

■A5:SQL Mk-2

1.データベースの追加と削除から、「その他/ADO(OLEDB ODBC)」を追加します。

2.接続文字列の右の「...」ボタンを押します。

3.Microsoft OLE DB Provider for ODBC Driversを選択します。

4.接続文字列を使用するを選択して、「ビルド」を押します。

5.「コンピューターデータソース」タブから「SQLite3 Datasource」もしくは、新たに「新規作成」ボタンから「SQLite3 ODBC Driver」のユーザーDNSを作成します。

6.「SQLite3 ODBC Driver Connect」ダイアログボックスの「Database Name」に開きたいSQLiteデータベースファイルを指定します。

7.ユーザー名、パスワードは空白でOKです。その他必要項目を適宜入力してOKを押します。

8.接続文字列に、文字列が生成されていると思います。末尾(というかどこでもよいです)にに暗号化した時のパスワードをPWD=XXXXX;というように追加します。

 

例:

Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=SQLite3 Datasource;Database=C:\sqlite.db;StepAPI=0;SyncPragma=NORMAL;NoTXN=0;Timeout=100000;ShortNames=0;LongNames=0;NoCreat=0;NoWCHAR=0;FKSupport=0;JournalMode=;OEMCP=0;LoadExt=;BigInt=0;JDConv=0;"

Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=SQLite3 Datasource;Database=C:\sqlite.db;StepAPI=0;SyncPragma=NORMAL;NoTXN=0;Timeout=100000;ShortNames=0;LongNames=0;NoCreat=0;NoWCHAR=0;FKSupport=0;JournalMode=;OEMCP=0;LoadExt=;BigInt=0;JDConv=0;PWD=XXXX;"

 

9.「データベースの内容を登録」ダイアログボックスの「パスワード」入力ボックスは空白のままでOKです。

10.OK→閉じる

最初に接続する際にユーザーIDとパスワードを聞かれますが、空白のままOKで構いません。

 

以上です。

お役に立てば幸いです。

 

以下参考にさせていただきました

 

Fioの素敵な日々 様

http://fio.hatenablog.com/entry/2013/03/12/222157

 

SQLiteODBC Documentation 様

http://www.ch-werner.de/sqliteodbc/html/index.html