Create  Edit  Diff  Phillro Industries  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

RDB::DataSource

Delphi でデータベースと画像部品とをリンクするときには、途中にデータソースオブジェクトを挟むことになっている。

画像部品 ⇔ データソース ⇔ データセット ⇔ ・・ ⇔ 物理的なデータベース

* Delphiのヘルプだとこんな表現。「データコントロールはデータソースを使ってデータベースに接続します。データソースコンポーネント(TDataSource)は,データの入ったデータセットとコントロールとの仲介の役目を果たします」。


RDB-DataSource?

super class

Object

class methods

new : EDB-DataSource?

methods

properties

event handlers

on_data_change(field) : nil

data_change event は, RDB::DataSource? に関連付けられた RDB::DataSet? でカレントレコードを編集したり,別の項目やレコードに移動したときに発生します。

field
RDB::Field: 同時に複数の項目が変更された場合 ( 別のレコードに移動した場合など ) には, field は nil になります。そうでない場合には field は編集された項目を示します。

on_data_change を記述すると, RDB::DataSource? に関連付けられた RDB::DataSet? でカレントレコードの項目を編集したり,別の項目やレコードに移動したときに特定のアクションを実行できます。このイベントを生成するメソッドには RDB-DataSet?#next や RDB-DataSet?#prior があります。データベース対応コントロールは,以下の処理によってデータが変更されたことを RDB::DataSource? に通知します。

  • 新規のレコードへのスクロール
  • 項目のデータの変更

データベースに対応していない複数のコントロールで同時にデータを表示しなければならない場合に on_data_change は特に便利です。

on_state_change : nil

state_change event は, RDB::DataSource? の RDBB::DataSet? の state が変わったときに発生します。

on_state_change を記述すると, RDB::DataSource? に関連付けられた RDB::DataSet? の state が変更されたときに特定のアクションを実行できます。データベースに正常に接続している間,データセットの状態は頻繁に変わります。例えば,ユーザーがデータベース対応コントロールで項目の編集を始めると, RDB::DataSet? の state はまだ DS_EDIT になっていなければ DS_BROWSE から DS_EDIT に変わります。 on_state_change は,状態の変更に対する応答としてメニュー項目やボタンを使用可能 / 使用不可にするなどのアクションを実行できます。

on_update_data : nil

update_data event は,カレントレコードが更新されるときに発生します。

on_update_data を記述すると,データベースにデータの変更を登録する前に特定のアクションを実行できます。データベースに変更を登録するときには, RDB-DataSet?#post が実行される前に on_update_data が呼び出されます。 on_update_data は,変更を登録する前にさらにデータを処理したり検証したりする場合に便利です。


require "rdb/rdb"
require "methods_for_wiki"
puts RDB::DataSource.methods_for_wiki

_dump => Phi::Component#_dump

auto_edit

auto_edit=

auto_edit?

component_count => Phi::Component#component_count

components => Phi::Component#components

data_set

data_set=

enabled

enabled=

enabled?

event_handle

extend => Phi::Persistent#extend

name

name=

on_data_change

on_data_change=

on_state_change

on_state_change=

on_update_data

on_update_data=

prop_info => Phi::Component#prop_info

write_res_file => Phi::Component#write_res_file

Last modified:2004/11/16 19:30:50
Keyword(s):
References:[RDB::DBGrid] [RDB::DBMemo] [ext-rdb-RDB-DataSource] [ext-rdb-RDB-constants] [ext-rdb-index]