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

RDB::Session

RDB::Session は BDE の一部です。

require "rdb/bde" で使用可能になります。


RDB-Session

Session クラスは,アプリケーションでデータベース接続を管理します。

Apollo(Delphi) はすべてのデータベースアプリケーション用に,グローバルにアクセス可能な SESSION という名前の Session オブジェクトを自動的に作成します。

データベース関係のオブジェクトは、(SessionList が Session を管理し)、Session が Database? を管理し、Dababase が Table? や Query? などの DataSet? を管理する、DataSet がレコードやフィールドを管理する、という関係にあります。

次のスクリプトでは、テーブルをオープンしたときに、自動的に Dataset オブジェクトが作られ、SESSION に登録される様子を示しています。

require "phi" ; include Phi
require "RDB" ; include RDB
p SESSION.databases
	##	[]
p Table.new('IBLocal',"employee").open.fields.values
	##	{	"JOB_COUNTRY"=>"USA", ... }
p SESSION.databases
	##	[#<RDB::Database:0xfebb08>]
p SESSION.databases[0].database_name
	##	"IBLocal"

SESSION は最初にボーランドデータベースエンジン(BDE)の情報を読み込みます。従って、Session クラスのメソッドを使うと、BDEの設定状況を調査することができます。また、BDEの設定とは異なった設定で(独自のエリアスを追加するなどの方法で)データベースを使用することが出来るようになります。さらに、スクリプトでBDE自体の設定を変更することもできるようになります。

注意:Delphi のヘルプではマルチスレッド用の説明がありますが、Apollo ではマルチスレッドはテストされていません。

注意:Session はコンポーネントにパスワードを提供します。

注意:Apollo でプロパティとして扱われている alias_names のようなメソッドは Delphi では GetAliasNames? などの名前のメソッドになっている場合があります。

super class

Object

class methods

new : RDB-Session

( まだ )

properties

alias_driver_name(alias_name)

指定したエリアスが使用しているドライバ名を返します。

alias_names

利用可能なエリアスの名前の配列を返します。

alias_params(alias_name)

指定したエリアスのパラメータの配列を返します。

config_mode

config_mode は,セッションに対して作成したエリアスをどのようにボーランドデータベースエンジン(BDE)が処理するかを示します。

config_mode は,セッションの状況内で Session?#add_alias または Session?#add_standard_alias を使って作成されたエリアスを BDE でどのように処理するかを示します。また, config_mode はアプリケーションが Session?#alias_names を呼び出したときにどの BDE エリアスがセッションにレポートされるかを示します。

config_mode のデフォルト設定は CM_ALL です。これには config_mode に定義されているすべての設定項目が含まれます。以下にエリアスに設定できる BDE 環境設定モードを示します。

RDB-CFM_VIRTUAL
BDE 環境設定ファイル(BDE 持続的ストア)のすべてのエリアスおよびローカルエリアスをそのセッションで利用できる
RDB-CFM_PERSISTENT
BDE 環境設定ファイルのエリアス(BDE 持続的ストアに追加されたエリアス)だけをそのセッションで利用できる
RDB-CFM_SESSION
そのセッション内で作成されたエリアスだけを利用できる

databases

オープンしている Database? オブジェクトの配列を返します。

database_names

利用可能な Database の名前を配列で返します。

driver_names

利用可能なドライバの名前の配列を返します。

methods

add_alias( alias_name , driver_name , params )

セッションにBDEエリアスを追加します。

alias_name : String 追加するエリアスの名前(文字列)。他のエリアスと区別可能な一意の名前です。

driver_name : String エリアスに使う SQL Link データベースドライバの名前です。利用可能なドライバは Session?#driver_names で調べておくとよいでしょう。

params : Strings エリアスのパラメータが入っている文字列リストです。ドライバによってパラメータは異なります。 Session?#alias_params で似たようなエリアスのデータを調べておくとよいでしょう。

InterBase では次のような感じになるようです。ドライバ名は「INTRBASE」であって「INTERBASE」ではないんですね。

params = [
  "SERVER NAME=Linux:/db/foo/bar.gdb",
  "USER NAME=bar",
  "OPEN MODE=READ/WRITE",
  "SCHEMA CACHE SIZE=8",
  "LANGDRIVER=",
  "SQLQRYMODE=",
  "SQLPASSTHRU MODE=SHARED AUTOCOMMIT",
  "SCHEMA CACHE TIME=-1",
  "MAX ROWS=-1",
  "BATCH COUNT=200",
  "ENABLE SCHEMA CACHE=FALSE",
  "SCHEMA CACHE DIR=",
  "ENABLE BCD=FALSE",
  "BLOBS TO CACHE=64",
  "BLOB SIZE=32",
]
SESSION.add_alias('baz', 'INTRBASE', params)
注意
ここで追加したものは、このセッションのみで有効であり、BDE のデータを書き換えるものではありません。BDE のデータを書き換えれエリアスを永続的に保存するには, Session?#save_config_file を呼び出してからセッションを終了します。
注意
Paradox または dBASE エリアスを作成する場合には、 Session?#add_standard_alias を使えばより簡単に作成できます。

add_standard_alias(alias_name, path, default_driver)

add_standard_alias を実行時に呼び出すと,Paradox,dBASE,または ASCII テーブルにセッション固有の BDE エリアスを作成します。

alias_name
String: エリアスに割り当てる一意の名前です。
path String
データベースが格納されているディレクトリです。
default_driver
String: エリアスで使う標準 BDE ドライバの名前です。

"PARADOX","DBASE","ASCIIDRV" のいずれかを指定します。

空文字列の場合 "PARADOX" に設定されます。

default_driver は,拡張子を持たずテーブル型が TT_DEFAULT として定義されているテーブルを開こうとしたときに使用されます。

注意
SQL データベースのエリアスを作成するには, Session?#add_standard_alias のかわりに Session?#add_alias を呼び出します。

table_names(database_name, pattern, extension?, system_table?)

指定したデータベースで利用可能なテーブル名の配列を返します。

rdb.rb で引数を省略可能にする予定。

pattern
String: 区切り記号文字列を指定して,その文字列に一致するものだけを返すようにテーブルを制限します。

ワイルドカードを使えます。制限されていないすべてのファイルを一致させるために空文字列を渡せます。

extension?
Boolean: Paradox および dBASE 上で検索する場合, true に設定するとテーブル名にファイルの拡張子が追加されます。

SQL ベースのデータベースでは false に設定します。

system_table?
Boolean: SQL ベースのデータベースでは,データベース構造を定義するデータテーブルおよびシステムテーブルを返すように true に設定します。

Paradox および dBASE では false に設定してください。

save_config_file

save_config_file は,ボーランドデータベースエンジン(BDE)の持続的ストア内の現在の情報をメモリからディスク上の BDE 環境設定ファイルへ書き込みます。

save_config_file を呼び出すと,BDE 環境設定に対するすべての変更情報がメモリからディスク上の BDE 環境設定ファイルに書き込まれます。BDE が初期化されるときには現在の BDE 環境設定ファイルはメモリ内の持続的ストアに読み込まれます。アプリケーションはメモリ内の環境設定ファイルの読み込みまたは修正ができますが,修正できるのはメモリ上だけでディスクには書き込まれません。

たとえばアプリケーションが新しい BDE エリアスを Session?#add_alias を使って作成する場合,エリアスがメモリ内にあるのは BDE がメモリ内に読み出されているだけです。BDE を使うすべてのアプリケーションが新しいエリアスを利用できるように保存するには save_config_file を呼び出してください。 save_config_file は持続的環境設定ファイルのメモリイメージを環境設定ファイルのディスクイメージに上書きします。

注意
セッションの Session?#config_mode が CFM_SESSION のときは,追加されたエリアスは BDE 環境設定ファイルに保存できません。

database_count

modify_alias

( 未テスト )

Last modified:2004/11/16 19:26:32
Keyword(s):
References:[ext-rdb-RDB-Session] [ext-rdb-RDB-constants] [ext-rdb-index]