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