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

apollo's Wiki - RDB::Table Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

Phi::Table は [[BDE]] コネクションのための[[テーブルクラス]]です。

! Table

!! super class

[[DataSet]]

!! class methods

!!! new : Table

Phi::Table.new(nil, dbase_or_paradox_path)

require "rdb"
dbase_or_paradox_path = "C:\\Program Files\\Common Files\\Borland Shared\\Data\\biolife.db"
table = Phi::Table.new(nil,dbase_or_paradox_path)
#
p :before_open
p Phi::SESSION.databases[0]               #=> nil
puts table.structtable.struct # open
#=> name type size
#=> species no Float 0
#=> category String 15
#=> common_name String 30
#=> species name String 40
#=> length (cm) Float 0
#=> length_in Float 0
#=> notes Memo 50
#=> graphic Graphic 0
p :after_open
p Phi::SESSION.databases[0]               #=> #<Phi::Database:0x1903050>
p Phi::SESSION.databases[0].database_name #=> ""
p Phi::SESSION.databases[0].table_names   #=> #<Phi::StringList: >


Phi::Table.new(table_dir, table_name)

require "rdb"
table_dir = "C:\\Program Files\\Common Files\\Borland Shared\\Data"
table_name = "biolife.db"
table = Phi::Table.new(table_dir, table_name)
#
p :before_open
p Phi::SESSION.databases[0]               #=> nil
puts table.struct # open
p :after_open
p Phi::SESSION.databases[0]               #=> #<Phi::Database:0x1903050>
p Phi::SESSION.databases[0].database_name #=> "C:\\Program Files\\Common Files\\Borland Shared\\Data"
p Phi::SESSION.databases[0].table_names   #=> #<Phi::StringList: "animals", "biolife", "clients", ..

Phi::Table.new(bde_alias_name, table_name)

require "rdb"
bde_alias_name = "dbdemos"
table_name = "biolife.db"
table = Phi::Table.new(bde_alias_name, table_name)
#
p :before_open
p Phi::SESSION.databases[0]               #=> nil
puts table.structtable.struct # open
p :after_open
p Phi::SESSION.databases[0]               #=> #<Phi::Database:0x1903050>
p Phi::SESSION.databases[0].database_name #=> "dbdemos"
p Phi::SESSION.databases[0].table_names   #=> #<Phi::StringList: "animals", "biolife", "clients", ..


Phi::Table.new(database_object, table_name)

require "rdb"
bde_alias = "dbdemos"
table_name = "biolife.db"
database = Phi::Database.new(bde_alias)
table = Phi::Table.new(database, table_name)
#
p :before_open
p Phi::SESSION.databases[0]               #=> #<Phi::Database:0x1903050>
puts table.struct
table.struct # open
p :after_open
p Phi::SESSION.databases[0]               #=> #<Phi::Database:0x1903050>
p Phi::SESSION.databases[0].database_name #=> "dbdemos"
p Phi::SESSION.databases[0].table_names   #=> #<Phi::StringList: "animals", "biolife", "clients", ..

Phi::Table.new(database_object, table_name)

require "rdb"
table_dir = "C:\\Program Files\\Common Files\\Borland Shared\\Data"
table_name = "biolife.db"
database = Phi::Database.new(table_dir)
table = Phi::Table.new(database, table_name)
#
p :before_open
p Phi::SESSION.databases[0]               #=> #<Phi::Database:0x1903050>
puts table.struct # open
p :after_open
p Phi::SESSION.databases[0]               #=> #<Phi::Database:0x1903050>
p Phi::SESSION.databases[0].database_name #=> "C:\\Program Files\\Common Files\\Borland Shared\\Data"
p Phi::SESSION.databases[0].table_names   #=> #<Phi::StringList: "animals", "biolife", "clients", ..


!! properties

!!! exclusive

!!! exclusive=

!!! index_field_names

!!! index_field_names=

!!! index_name

!!! index_name=

!!! master_fields

!!! master_fields=

!!! read_only

!!! read_only=

!!! store_defs

!!! store_defs=

!!! table_name

!!! table_name=

!!! table_type

!!! table_type=

!!! index_defs

Table の [[IndexDefs]] オブジェクトを返します。


IndexDefs オブジェクトは,テーブルのインデックスに関する情報( [[IndexDef]] )の集合体です。


新規のテーブルを作成する場合には、 [[Table]]#create_table を呼び出す前に [[Table]]#index_defs で取り出したオブジェクトを使ってテーブルのインデックス定義を作成します。


既存のテーブルのインデックス情報を参照するには、 [[IndexDefs]]#update で最新の項目リストに更新した後に [[Table]]#index_defs を参照します。これにより、そのテーブルで利用可能なインデックスの情報を調べることができます。

: 例: table.index_defs.update
puts table.index_defs.collect{ |index_def| index_def.fields }

IndexDefs が更新または手動で編集されている場合 [[Table]]#store_defs は true になります。


なお、テーブルにインデックスを指定するには [[Table]]#index_field_names= または [[Table]]#index_fields= を使います。

!! event handlers

!!! on_update_error

!!! on_update_record