SQLite3とOpenOffice4.1.1のBase連携メモ書き





久しぶりのメモ書きブログ更新!




まぁ最近1ヶ月に最低ニコ生5回とブログ2件、旅行記1回の更新を目標にしようと決めたのだけど、ここ数日、個人的にOpenOfficeのBaseから外部DBへ接続し、データの更新が出来たら便利だなぁと思い、試したので、とりあえずその一連の手順を適当にメモ書きし、ブログ更新!





【環境】



  • Windows7 pro 32bit 簡体字中国語版

  • OpenOffice 4.1.1

  • 言語設定 デフォルト(簡体字中国語)

  • SQLite3 ver 3.8.7.4












OpenOfficeとSQLite双方でデータの更新を行うための設定





sqlite3のダウンロード

1:SQLite3の「exeファイル」をSQLiteの公式サイト、Precompiled Binaries for Windowsの場所からダウンロード。


2:僕の場合、exeファイルを「C:\FreeWare\sqlite3\」直下へ保存。





windows path sqlite3 設定 windows path sqlite3 設定

3:環境パスの設定


→上記2点の画像を参考に、「C:\Free Ware\sqlite3;」の文字列を、コンパネ ⇒ システム ⇒ システムのプロパティ ⇒ 環境設定のPathに追加。


4:コマンドプロンプト文字コードUTF-8へ変更








<コマンド>
 >chcp :現在の文字コードを表示
 >chcp 932:文字コードをshift_jisへ変更
 >chcp 65001:文字コードをutf-8へ変更






65001utf-8


※ 936が中国語デフォルト、932が日本語デフォルト(shift_jis)





sqlite3のODBCドライバダウンロード

5:SQLite ODBC DriverのサイトからSQLite3用QDBCドライバをダウンロード&インストール。


6:SQLiteを実行し、「odbc_test.db」という適当につけた名前のDBを作成し、テーブルをとりあえず2つ作成。作成方法はSQLiteとSQLの操作なので割愛!





sqlite3のodbcドライバ設定 sqlite3のodbcドライバ設定





sqlite3のodbcドライバ設定

7:上の画像3点を参考にODBCドライバを設定。




「ODBCって何?」とかいうレベルの人はこのブログにたどり着かないと思うので、割愛!




→ コンパネ ⇒ 管理ツール ⇒ ODBCデータソース(32 or 64bit) ⇒ ユーザDSNタブ ⇒ 追加クリック ⇒ スクショないけどデータソースのドライバ一覧でSQLite3~を選択 ⇒ データソース名入力&「6」で作成したファイルの場所を選択。





openoffice base 設定 openoffice base 設定





openoffice base 設定 openoffice base 設定

8:OpneOffice BaseSQLiteで作成したDBへアクセス&編集 or 閲覧出来る状態に設定。


※ 4枚目の画像ではテストファイルはすぐに削除する予定だったからデータベースに登録してないけど、実際は登録した方がCalcでも開けるし、何かと便利だと思います。


9:スクリーンキャプチャないけど、OpenOfficeBaseで修正したDBの内容が反映されているかSQLiteを実行し、確認。












OpenOffice Baseファイルの容量削減





openoffice base 容量削減、defrag openoffice base 容量削減、defrag

10:ODBCの設定とは全く関係ないけど、OpenOffice Baseファイルをデフラグする事で150MBほどあった容量が約17MB、約88%の減量になりましたw




【手順】


→ ツール ⇒ SQL ⇒ 「checkpoint defrag」を入力&実行



これだけですw



ちなみに、





a)排他制御については、誰かが利用している間はロックされる。


※僕の環境ではOpenoffice BaseとSQLite3を自分のPCで同時使用している分にはどちらから更新しても反映されています。


※Base ⇒ dbへ書き込み SQLiteで確認と、SQLiteでupdate文で更新、Baseで確認。


b)「tksqlite」からもアクセス&データの更新が出来た。


c)UTF-8にしないとSQLiteもしくはBaseから更新したファイルは文字化けする。


d)Baseでは「フォーム」を通さないと改行が反映されない。


※SQLiteで改行反映させたい場合、プロンプトで直接改行するだけで反映。


→ \r\nやchar(13) + char(10)とか無意味w



上記4点は確認出来ました><


以上、超簡単に、まるで手抜きしたような(手抜きしてますねw)メモ書きですが、参考になれば幸いです♪