和歌山のプログラミング・システム開発ならシステムキューブ
Btrieve(ビートリーブ)とは1990年代に、パソコンを使ったクライアント/サーバシステムのデーターベースとしてよく使われていました。
このBtrieve自体は、現在OracleやMS-SQLServerなどRDBMS(リレーショナル型データベース)全盛の時代では、あまりメジャーな存在ではなくなりつつありますが、現在でもPervasive PSQLとして製品ラインは続いています。
このBtreiveをPervasive PSQLにリプレースする場合、同じデータベースファイルをそのままに使えるので、移行には手間はかからないようです。
Pervasive PSQL製品版を持っていない場合は、このファイルを開くことができません。
ファイルの中を見ると、おそらく固定長のファイルであることは、わかるのですが、データベースがどういう定義で保存されているのかわからない場合、データを紐解くことは難しいです。
Accessもバージョン2.0の時代はBtrieveのデータベースを開く機能もあったようですが、2013年の現在Access2.0のソフト本体も、動く環境もそろえることは難しくなっています。
これを読み取るものがないものか、ネットを探してみたところ、オープンソースのソフトウェアでBtrieveFileSaverというものを見つけることができました。
これはBtrieveやPervasiveのランタイムやライブラリは必要とせずに動作するもののようです。
BtrieveFileSaver
http://sourceforge.net/projects/btrievefilesave/
リポジトリを見ますと、VisualC++.netで開発されたソフトウェアです。
最新版をダウンロードすると、windows形式のexeがいくつか展開されます。
readme.txtとliesmich.txt(ドイツ語でライセンス)をよく読んで利用してください。
Visual_btrieve_file_saver_trial_en(de).exeは、トライアルバージョンのようで、GUIで操作できますが5件までの出力に、限られているようです。
コマンドライン版のBTrieveFileSaver.exeをコマンドプロンプトを利用して、実行します。
利用方法は、
[text]
BtrieveFileSaver –brtin data.dat –brtout data.dat.dmp –format 1
[/text]
のようにして利用します。
-brtinには読み込み元のBtrieveのファイル、-brtoutには出力先ファイル名を指定します。
-formatオプションは
1 BUTIL(Btrieveのコマンドラインユーティリティー)形式での出力です。先頭にレコード長、レコード区切りはCR+LFで出力されるようです。
2 BUTIL形式から、レコード長を取り除いた形式のようです。
3 HEX DUMP(16進ダンプ)をテキスト形式で出力します。CRCということはチェックサムが付加されているものかもしれません。ファイルサイズとしては、一番大きくなります。
4.HEX DUMP(16進ダンプ)をテキスト形式で出力します。
上記の4つのオプションを使用することができます。
実行すると1レコードごとに処理ログが出力されます。
改行区切りはCR+LFなので、メモ帳などで読むと、テキストフィールドはかなりきれいに並んだ状態で読めます。
またレコード長などもはっきりしますので、実際のデータのプリンタ出力やバイナリエディタと合わせて使えば、レコード定義を理解することもできそうです。
Btrieve形式のデータベースを、サードパーティーのアプリで開くものもなかなか見つかりませんので、このようなソフトウェアを利用するのも、方法の一つかもしれません。