|
■データセットを理解する |
|
|
|
●学習内容 |
|
|
|
Delphiでデータベースアプリケーションを作成する際には、データセットは避けては通れないものだと思ってください。TQuery、TTableコンポーネントのどちらのコンポーネントを利用する場合であってもこれを理解しておかないとデータベースを操作することが出来ないのでしっかり理解しておいてください。 |
|
|
|
|
|
|
|
|
|
●TDataSet(データセット) |
|
|
|
|
データセットの機能には、以下のものがあります。
|
|
|
|
|
・双方向に移動できるカーソルのサポート
・レコード検索
・フィルタによるレコード情報の絞込み
・データセットの変更(更新)
・項目コンポーネントを利用した列情報へのアクセス |
|
|
|
|
|
|
|
|
|
これらの機能を見てもデータセットとはいったい何なのか分からないでしょう。これから説明していきますので安心してください。
データセットは、データベースから取得したデータを格納しています。これまでに簡単なプログラムを作成しましたよね。そこでは、データベースのデータをそのままアプリケーション上で操作しているように扱えたはずです。しかし、実際には直接データベースを扱っているわけではありません。アプリケーションの利用者は、データセットのデータを操作し、データセットがデータベースに対して更新を行うのです。なぜこのような構造になっているかは、データの更新をキャンセルしたい時や更新が失敗した時の事を考えての事でしょう。ですからDelphiでデータの操作を行いたい場合は、このデータセットの使い方を理解する必要があります。ここでは、データセットの変更と項目コンポーネントについて述べます。 |
|
|
|
|
|
|
|
|
|
●データセットの変更 |
|
|
|
|
データセットの変更をする前に、データセットの状態を示すStateプロパティを変更する必要があります。そこで、まずStateプロパティについて簡単に説明します。
データセットの状態として主なものは以下のとおりです。
|
|
|
|
|
|
|
|
|
|
Stateプロパティ |
状態 |
dsInactive |
データセットが開かれていない |
dsBrowse |
データセットは参照状態にある |
dsEdit |
データセットは修正状態にある |
dsInsert |
データセットは挿入状態にある |
|
|
|
|
|
|
|
|
|
|
データセットを操作するには、以下のようなメソッドを利用してレコード(行)を変更します。また、データセットのStateプロパティ変化を以下に示します。 |
|
|
|
|
|
|
|
|
|
メソッド |
説明 |
Open
|
データセットの初期状態は、dsInactiveです。この状態でデータセットを操作をする事はほとんど出来ません。データセットを利用するためにdsBrowseにする必要があり、Openメソッドを利用します。 |
Close |
データセットを閉じる |
Append |
データセットのレコードの最後に新規行を追加する |
Insert |
データセットのレコードの途中に新規行を追加する |
Edit
|
現在のレコードの更新には、Editメソッドを使いStateプロパティをdsEditにします。 |
Post |
データを確定する |
Cancel |
データを取り消す |
Delete |
データセットへの行削除を行う |
|
|
|
|
|
|
|
|
|
|
<データセットのStateプロパティの変化>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
このデータセットのStateプロパティとメソッドを理解しておけばデータベースの更新は容易です。 |
|
|
|
|
|
|
|
|
|
●項目コンポーネント |
|
|
|
|
データセットは、列情報をコンポーネントとして管理しています。そのコンポーネントを項目コンポーネントと呼びます。項目コンポーネントは、項目の表示・編集そして、項目のチェックに利用します。項目コンポーネントの利用は、コードの記述による利用と項目エディタを利用して設計時に作成してしまう方法があります。 |
|
|
|
|
|
|
|
|
|
★コードの記述による項目コンポーネントの利用 |
|
|
|
|
コードにより利用する場合、FieldsプロパティやFieldByNameメソッドを使い列情報を記述します。以下に例をしめします。
|
|
|
|
|
CinemaQuery.Fields[0]
CinemaQuery.FieldByName('Cinema_code')
CinemaQueryCinema_code |
|
|
|
|
このように記述する事により、他のコンポーネントと同じようにデータセットの列情報を操作することができます。 |
|
|
|
|
|
|
|
|
|
★項目エディタによる項目コンポーネントの利用 |
|
|
|
|
設計時に項目コンポーネントを作成するには、項目エディタを利用します。 |
|
|
|
|
|
|
|
|
|
★操作方法 |
|
|
|
@ |
TTable,TQueryコンポーネントをダブルクリックするか、右クリックから[項目の設定(T)]を選択します。 |
|
|
|
A |
項目エディタが表示されたら右クリックから[すべての項目を追加(F)]を選択する。 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|