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 Connectivity
Windowsで、Access や Visual Basic などのアプリケーションか
ら、SQL Server やOracle などの RDBMS に接続するときの、抽
象化中間層。
ODBC アーキテクチャでは、 Access などのアプリケーションは、
ODBC(ドライバマネージャ)に接続します。そして、 ODBC は、
「SQLite ODBC ドライバ」など各RDBMSごとに特有の ODBC ド
ライバを使用して、データソースに接続します。
同様のものに、「JDBC」があります。
unixODBC って何?
UNIXなどで、「Windows における ODBC」と同じ役割をするもの。
ODBC ドライバって何?
各RDBMSごとに提供される、ODBCに対応するための機能拡張
です。
次のようなものがあります。
libmyodbc (MySQL
odbc-postgresql (PostgreSQL
libsqliteodbc (SQLite
tdsodbc (MS SQL / Sybase SQL
mdbtools (*.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_USERSoftwareODBCODBC.INI
システム DSN:
HKEY_LOCAL_MACHINESoftwareODBCODBC.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 Manager
SQLite Database Browser
SQLiteman
PupSQLite
TkSQLite
参考文献など
書籍
「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.html
http://www.crystal-creation.com/software/tool/office/access/external
/sqlite.htm
OpenOffice.org のドキュメント
https://wiki.openoffice.org/wiki/Documentation/How_Tos/Using_SQ
Lite_With_OpenOffice.org

LibreOffice Base をSQLite のフロントエンドにしてみよう