7.おまけ
MonoDevelopからSQLite DBへのデータ操作についても試してみました。
MonoDevelop
MonoDevelopはMonoから提供されている統合開発環境です。monodevelop-database(MonoDevelop用アドイン)を導入することによりMonoDevelop上からSQLite DBへのデータ操作(クエリの実行)などが可能になります。
SQLite DBへの接続設定
MonoDevelopを起動し、「データベースブラウザビュー内」→「データベース接続アイコンを右クリック」→「接続の追加」を選択し、
- 型:SQLite database
- 名前:TestData(SQLite3) <- 任意
- データベース:/home/sta/data/TestData.db <- SQLite DBファイルパス
を入力して、OKボタンを押します。
クエリの実行
MonoDevelopのメニューから「ツール」→「データベース」→「データベースをクエリ」を選択するとSQLクエリ入力画面が表示されるのですが、当初、openSUSEのYaST2からSQLiteを導入した状態でクエリの実行を試みると「エントリポイントsqlite3_column_origin_nameが見つかりません」という意味の例外が発生し、クエリ実行までには至りませんでした。
sqlite-develパッケージの導入で回避できるかな?と考え導入してみましたが、状況変わらずでしたので、SQLite本家サイトよりソース資源をダウンロードし、ヘッダーファイルを確認すると、sqlite3_column_origin_name関数についての記述があり、有効にするためにはconfigure実行時にオプションの指定が必要ということが分かりました。以下に、インストール実行例を挙げます。
なお、sqlite3コマンドを使用して、対話的にDB操作を行う場合、コマンドヒストリ機能を有効にするためには事前にreadline-devel、termcapパッケージの導入が必要でした。
インストール先はデフォルトで/usr/local/以下になります。
> cd tmp/ > tar xvzf sqlite-amalgamation-3.5.9.tar.gz > cd sqlite-amalgamation-3.5.9/ > ./configure CFLAGS="-Os -DSQLITE_ENABLE_COLUMN_METADATA" LDFLAGS="-L/usr/lib/curses" CONFIG_SHELL="/bin/bash" > make > su # make install # ldconfig
ということで、なんとかMonoDevelopからSQLite DBへのクエリ実行が可能になりました。
8.まとめ
ごく基本的な内容でしたが、MonoでSQLiteを使用したDBアクセスについて解説を行いました。
また、MonoではSQLite以外の主要なDBMS用データプロバイダが使用でき、機会があれば、それらを使用した場合についても紹介したいと思います。