☆Paradoxに代わるもの
ComponentAce社のAbsolute Databaseは、DBエンジンのインストールやDLLも不要でEXEのみで実行可能です。個人利用であれば、フリーで使えます。次のような登録のお願い?(nag screen)は表示されますけどね。

ComponentAceのホームページより For trial and personal use. No limitations at runtime when database is used in single-user mode (1 database connection). On IDE startup a nag screen is shown. In multi-user mode (file-server), nag screen is shown outside IDE
CodeGear 高橋智宏氏がいろいろ試した中でも、Paradox同等機能(実際は同等以上)及び移項のしやすさを考えると一番いいんじゃないかと話されておられました。そのAbsolute Databaseについて、Paradoxファイルを変換してDBGridに表示するまでを詳細に書いてみますね。
[インストール]
Absolute Database Personal Editionをダウンロードします。
2007/09/08現在、Product Version 5.14となっています。
ComponentAce ダウンロードのページ
インストール後、ツールパレットには、AbsoluteDBというカテゴリと、次の4つのコンポーネントが追加されました。
では、早速使ってみます。
今回使うParadoxファイルは、biolife.dbです。
デフォルトではC:\Program Files\Common Files\CodeGear Shared\Dataにあります。
大切なデータベースなので、変換中に壊れたりすると困るので、c:\biolifeというフォルダを作成し、そこに次のファイルをにコピーします。
biolife.db biolife.mb biolife.px
[Paradox]
まず、このParadoxファイルを表示させてみます。 フォームにTable1、DataSource1、DBGrid1、DBMemo1、DBImage1を配置し、次のように設定します。
[Table1] Table1.DatabaseName := 'c:\biolife'; Table1.TableNam := 'biolife.db'; Table1.Active := True; [DataSource1] DataSource1.DataSet := Table1; [DBGrid1] DBGrid1.DataSource := DataSource1; [DBMemo1] DBMemo1.DataSource := DataSource1; DBMemo1.DataField := 'Notes'; [DBImage1] DBImage1.DataSource := DataSource1; DBImage1.DataField := 'Graphic'; DBImage1.Stretch := True;
実行させるとこのようになります。
[AbsoluteDatabase]
次にAbsoluteDatabaseです。
まず、ParadoxファイルをAbsoluteDatabaseに変換します。 AbsoluteDatabaseには、Paradoxファイルを変換するためのプログラム、DBImportExport.exeというものが用意されていますので、それを実行します。
デフォルトではC:\Program Files\ComponentAce\AbsoluteDatabase\Utils\Binにあります。
インポートするのかエクスポートするのかを選択します。今回はもちろん、インポートです。
今回はAliasではなく、フォルダのファイル変換を選択します。
変換するファイルを選択します。
変換後のデータベース名を入力します。
無事変換できました。
ABSBiolife.absというファイルができています。今回は、一つのテーブルですが、複数のテーブルやインデックスファイルも一つのファイルにまとめられて管理しやすくなります。
Paradoxの表示に使ったフォームに、ABSDatabase1、ABSTable1を配置し下記のように設定します
(貼り付けようとすると例の登録のお願い?が表示されました。気持ちはわかりますが、何度も表示させると逆効果じゃないかな?)
[ABSDatabase1] ABSDatabase1.DatabaseFileName := 'c:\biolife\ABSbiolife.abs'; ABSDatabase1.DatabaseName := 'FirstABS'; [ABSTable1] ABSTable1.DatabaseName := 'FirstABS'; ABSTable1.TableName := 'biolife'; [DataSource1] DataSource1.DataSet := 'ABSTable1';
ここでコンパイルすると
[DCC エラー] Unit1.pas(7): F1026 ファイル 'ABSMain.dcu' が見つかりませんとエラーが表示されました。
オプション→環境オプション→ライブラリ-Win32→ ライブラリパスを確認すると
C:\Program Files\ComponentAce\AbsoluteDatabase\Lib\Delphi 2007 and C++ Builder 2007
あれ登録されてる??
でもコンパイルできないので、プロジェクト→オプション→ディレクトリ/条件→検索パスに
C:\Program Files\ComponentAce\AbsoluteDatabase\Lib\Delphi 2007 and C++ Builder 2007
と入力し、実行しました。
同じプログラムでABSTableをABSQuery1に変更して、試してみましたが問題なく表示されています。
今回は、導入に当たっての話で終わりますが、、Paradoxの一番の弱点である、共有使用時の更新や5万件以上のデータの扱いについても機会があれば検証してみたいと思います。
(今回のプログラムを複数起動させるには ABSDatabase1.MultiUser := True; とします。)
ComponentAce
http://www.componentace.com/
第6回 CodeGearデベロッパーキャンプ 資料ダウンロード
【T3】C++Builderテクニカルセッション
「C++Builder 2007の新機能と活用のポイント」
CodeGear 高橋智宏 氏
プレゼンテーション資料:PDF(389KB)
| 固定リンク