1. 概要
Delphi は、Windows での迅速な開発ツールとして、一般的な Windows アプリケーションを開発できるだけでなく、強力なデータベース アプリケーション開発機能も備えています。 Delphi 自体は、BDE、ODBC、ADO、InterBase などのいくつかのデータベース ドライバーのサポートを提供しており、データベース プログラム開発のためのさまざまなアプリケーションのニーズを満たすことができます。
ただし、Delphi で開発したデータベース プログラムを公開する場合は、アプリケーションのインストールに加えて、データベース ドライバーも同時に公開する必要があります。これは、単一または複数の単純なテーブル データ ストレージのみを必要とする一部のスタンドアロン アプリケーションにとっては少し負担が大きいように思えます。また、アプリケーションによっては、それ自体に大量のデータを保存する必要があるが、その結果自体は短く簡潔であることが求められる場合、従来のDelphiを用いたデータベース開発手法では対応できません。
では、上記の矛盾を解決し、巨大なデータベース ドライバーから分離できる「薄い」データベース スタンドアロン アプリケーションを開発する方法はあるのでしょうか? Delphi5 は、この問題をうまく解決できる TClientDataSet コントロールを Midas コントロール パネルに提供します。
2. TClientDataSet を使用する際のポイント
TClientDataSet コントロールは TDataSet を継承しており、そのデータ ストレージ ファイル形式の拡張子は .cds です。これは、ファイル タイプのデータ ストレージと操作に基づくコントロールです。このコントロールは、データを操作および処理するためのインターフェイスと機能をカプセル化しており、上記のデータベース ドライバーに依存せず、基本的にスタンドアロンの「シン」データベース アプリケーションのニーズを満たすことができます。
1. TClientDataSet の基本的なプロパティとメソッドの概要
1). FieldDefs: フィールド定義リストのプロパティ
開発者は、プロパティ エディターでプロパティ編集ボタンをクリックするか、コントロールを右クリックしてポップアップ メニューの [フィールド エディター] メニューを選択することで、フィールドを編集できます。このプロパティを設定した後は、実際にはテーブルの構造を定義するのと同じになります。既存のデータ テーブルの構造とデータをロードする場合は、右クリックして、ポップアップ メニューの [ローカル データの割り当て] を選択します。ダイアログ ボックスで、現在のフォームでデータベースに接続されているデータ セット コントロールの名前を選択します (適用するデータ セット コントロールは、現在のフォームに配置され、アクティブ化されている必要があります)。
使用上の注意:
カスタマイズされたフィールド名テーブルの場合、プロパティを編集した後もコントロールを開くことができません。コントロールをアクティブにして開いて使用する前に、コントロールを右クリックしてポップアップ メニューの [データセットの作成] メニューを選択し、上記で編集したフィールド リストに基づいてコントロールがデータ セットを作成できるようにする必要があります。それ以外の場合、「ClientDataSet1: データ PRavider またはデータ パケットが欠落しています。」のようなエラーが発生します (ランタイム中も含め、ランタイムはコントロールの CreateDataSet メソッドを呼び出してフィールドとテーブルを動的に定義できます)。
2)。ファイル名プロパティ
説明: データストレージファイルの名前。
このコントロールはファイルベースのデータ操作コントロールであるため、データ編集用のコントロールを開いてアクティブ化するには、操作するデータ ファイルの名前 (デフォルトの拡張子名 .cds) を指定する必要があります。
例 1: このプロパティを使用して、指定された .cds ファイルを開きます
変数
パス: 文字列;
始める
Path := ExtractFilePath(application.ExeName); //実行ファイルのパスを取得します。
CDataSet1.FileName := パス + 'test.cds';
CDataSet1.Open;
終わり;
3). CreateDataSet メソッド
説明: このメソッドは、FieldDefs のフィールド名テーブルを構造として使用してデータ セットを作成します。これは、テーブルを動的に定義するためによく使用されます。
例 2: 名前と年齢の 2 つのフィールドを持つデータ セットを動的に作成します。
//フィールド名テーブルを作成
CDataSet.FieldDefs.Clear;
CDataSet.FieldDefs.AddFieldDef を使用すると、
始める
名前 := '名前';
サイズ:= 10;
データ型 := ftString;
終わり;
CDataSet.FieldDefs.AddFieldDef を使用すると、
始める
名前 := '年齢';
データ型 := ftInteger;
終わり;
//データセットを動的に作成
CDataSet.CreateDataSet;
// データセットをアクティブにして開きます
CDataSet.Open;
4).オープンメソッド
説明: データ編集用のデータ セット コントロールを開いてアクティブにします。
a. FileName 属性が指定されている場合、Open メソッドを使用してコントロールを開いて直接アクティブ化できます (例 1 を参照)。
b. FileName 属性が指定されていない場合は、例 2 のメソッドを使用してデータ セットを動的に作成して開き、データを操作できます。
5). LoadFromFile と SaveToFile
説明: テーブル構造とデータをファイルからロードし、データをファイルに保存します。この方法は、Word の [新しいファイルを開く] および [名前を付けて保存] 機能に似ています。
例 3: データセットのデータを指定したファイルに保存する
CDataSet.SaveToFile('c:/windows/desktop/test.cds');
6).First (先頭へ)、Prior (前方)、Next (後方)、Last (最後へ)、Edit (編集)、CanCel (編集のキャンセル)、Post (保存)、Insert (レコードの挿入)、Append (レコードの追加)、削除 (削除)、リフレッシュ (データの更新) およびその他のデータ セットの一般的な方法
注: FileName 属性が指定されている場合、その Post メソッドは、SaveToFile メソッドと同様に、指定されたファイルにデータを保存できます。ストレージ ファイル名が指定されていない場合、Post メソッドはデータを RAM にのみ保存します。その他の方法は一般的なデータセット制御の使用方法と同じなので省略します。
7).Filter、Filtered: フィルタリングのプロパティ
説明: 指定した条件でレコードをフィルタリングするために使用されます。使用方法は一般的なデータ セット コントロールと同じなので省略します。
例 4: アクティブ化されて開かれたデータセット内の性別が男性であるレコードをフィルターする
CDataSet.Close;
CDataSet.Filter := '性別=''' + '男性' + '''';
CDataSet.Filtered := True;
CDataSet.Open;
2. TClientDataSet コントロールを使用してアプリケーションを公開する場合の注意事項:
前述したように、TClientDataSet コントロールを使用するプログラムはリリース時にデータベース ドライバーを必要としないため、インストール ファイルのサイズが大幅に節約されます。ただし、プログラムを公開する場合は、アプリケーション (動作に必要) と一緒に Windows システム ディレクトリに Midas.dll (257KB) を忘れずに公開してください。公開しないと、プログラムは正常に動作しません。
3. 結論
Delphi で TClientDataSet コントロールを使用すると、アプリケーションをデータベース ドライバーから完全に分離でき、従来のデータ セット コントロールのシンプルで使いやすい特性を実現でき、「薄い」データ セット コントロールを記述するための技術的な方法と手段を提供できます。データベースアプリケーション。
上記のプログラムは、Pwindows98 および Delphi5 でテストされています。