Base をSQLite のフロントエンドにしてみよう
発表者 那谷 進(@78tch)
今日のお題
Base って、MySQLとかPostgreSQLとか、ほかのRDBMSにも接続できるらしいけど・・・いまひとつやり方がよくわからない。
試行錯誤して、なんとなくやり方がわかったので、発表します。今回はSQLiteを取り上げますが、他のRDBMSでも応用がきくと思われます。
BaseでSQLiteってなにがうれしいの?
GUIでSQLiteのデータが操作できる。えーっと・・・。
全体像
Windows「Base」=「ODBC(ドライバマネージャ)」=「SQLite の ODBC ドライバ」=「SQLite のデータソース」
UNIX系
「Base」=「unixODBC(ドライバマネージャ)」=「SQLite の ODBC ドライバ」=「SQLite のデータソース」
「アプリ」 「ODBC」 「ODBCドライバ」 「データソース」
ODBCって何?
Open DataBase ConnectivityWindowsで、Access や Visual Basic などのアプリケーションから、SQL Server やOracle などの RDBMS に接続するときの、抽象化中間層。ODBC アーキテクチャでは、 Access などのアプリケーションは、ODBC(ドライバマネージャ)に接続します。そして、 ODBC は、「SQLite ODBC ドライバ」など各RDBMSごとに特有の ODBC ドライバを使用して、データソースに接続します。同様のものに、「JDBC」があります。
unixODBC って何?
UNIXなどで、「Windows における ODBC」と同じ役割をするもの。
ODBC ドライバって何?
各RDBMSごとに提供される、ODBCに対応するための機能拡張です。次のようなものがあります。
libmyodbc (MySQLodbc-postgresql (PostgreSQLlibsqliteodbc (SQLitetdsodbc (MS SQL / Sybase SQLmdbtools (*.mdb (JET / MS Access)
ODBC接続の設定
いわゆる「接続文字列」のはたらきODBCドライバやデータファイルの場所やオプションなどを指定して、これに名前をつける。(DSN:Data Source Name)
ユーザー DSN: 現在ログオンしているユーザーだけに定義される DSN。レジストリ サブキーとして保存される。
システム DSN: すべてのユーザーおよびサービスで共有される DSN 。レジストリ サブキーとして保存される。
ファイル DSN: ファイルに保存される DSN。ネットワークで共有したり、配布したりするためのもの。
実際にやってみましょう!
でもその前に...OSは何?
32bit版? 64bit版?
SQLiteは Ver.2 ? Ver.3 ?
それぞれで、ODBCも、ODBCドライバも違うので、要注意!!
Windows7(32bit) & SQLite Ver.3 編
公式サイトから「sqliteodbc.exe 」をDLしてインストール。
http://www.ch-werner.de/sqliteodbc/「コントロールパネル」→「システムとセキュリティ」→「管理ツール」→「データソース(ODBC)」→「ODBCデータソースアドミニストレーター」の「ドライバ」タブで、「SQLite3 ODBC Driver」が追加されていることを確認。
Windows 設定ファイル
DSNユーザー DSN:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INIシステム DSN:
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INIファイル DSN:/etc/ODBCDataSources/FileDSNhogehoge.dsn
いよいよBaseから接続1of4
Base でデータベースを新規作成し、「既存のデータベースに接続」で「ODBC」を選択します。
いよいよBaseから接続2of4
ユーザーDSNで名づけたデータソース名が選択できます。
いよいよBaseから接続3of4
SQLite にはユーザーがないので、空白のままテスト接続します。
いよいよBaseから接続4of4
「sample.db」の内容をBase で見ることができています。
情報源
「view README」に説明あり各設定項目の詳細は、今回は調べきれませんでしたorz...
Ubuntu(64bit) & SQLite Ver.3 編
Ubuntu ソフトウェアセンターで「unixodbc」(すべて小文字)を検索し、「詳細」の「追加のアドオン」のなかから「ODBC Driver for SQLite」もインストール。
ODBCManageDataSourcesQ4で設定1of3
端末からODBCManageDataSourcesQ4を起動
ユーザーDSNの場合はそのまま、システムDSNの場合はsudo で起動します。
ODBCManageDataSourcesQ4で設定2of3
まず「Advanced」で「ODBC Driver for SQLite」を設定します。
「Driver」と
「Setup」が
libsqlite3odbc.soになっていることを確認します。設定変更する場合、sudo で起動する必要があります。
ODBCManageDataSourcesQ4で設定3of3
Data Source Name の「User」に設定をAdd します。
「Database」に、
SQLite3 データファイルの場所を指定します。保存できているか確認します。他の指定項目の詳細は今回調b(ry
Ubuntu 設定ファイル
ドライバ設定ファイル/etc/odbcinst.ini
DSNユーザー DSN:~/.odbc.iniシステム DSN:/root/.odbc.iniファイル DSN:/etc/ODBCDataSources/FileDSNhogehoge.dsn
いよいよBaseから接続
Windows の場合とまったく同じ手順です。
その他のGUI ツール
SQLite ManagerSQLite Database BrowserSQLitemanPupSQLiteTkSQLite
参考文献など書籍「SQLite入門第2版」西沢直木[著]
「SQLiteポケットリファレンス」五十嵐貴之[著」
SQLite 公式 https://sqlite.org/unixODBC 公式 ※特に、「Manuals」⇒「User Manual」http://www.unixodbc.org/SQLite ODBC Driver 公式http://www.ch-werner.de/sqliteodbc/ブログhttp://aastate.web.fc2.com/other-software/libreoffice-tips/index.htmlhttp://www.crystal-creation.com/software/tool/office/access/external/sqlite.htmOpenOffice.org のドキュメント
https://wiki.openoffice.org/wiki/Documentation/How_Tos/Using_SQLite_With_OpenOffice.org