説明
OraRefインタフェースは、参照可能オブジェクト(スタンドアロン・インスタンス)に加え、Oracle REF(参照)を表します。
備考
Oracle REFは参照可能オブジェクトへの識別子です。参照可能オブジェクトはオブジェクト表の行に格納されます。REFを確保することにより、参照可能オブジェクトがクライアント側にフェッチされます。参照可能オブジェクトの属性が最初にアクセスされる時点で、OraRefオブジェクトが基礎となるREFを暗黙的に確保します。また、OraRefは、複合オブジェクト検索機能(COR)を利用するオブジェクト・ナビゲーショナル操作の機能をカプセル化します。
OraRefオブジェクトで表される参照可能オブジェクトの属性は、OraObjectインタフェースで表される値インスタンスの属性にアクセスする場合と同様の方法でアクセスします。確保される時点で、COMの包含機構を介して、OraRefにOraObjectインタフェースが組み込まれます。実行時点で、OraRefインタフェースは、OraObjectインタフェースに型変換されます。
OraRefは、ダイナセット、パラメータなど、基礎となるコンテキストの影響を受けない参照可能オブジェクトでの更新および削除操作用のメソッドを提供します。
参照可能オブジェクトの属性を変更する前に、オブジェクト・レベルでロックを取得してください。これはOraRefオブジェクトのEditメソッドを使用して行います。
OraDatabaseオブジェクトのCreateOraObjectメソッドは、新しい参照可能オブジェクトをデータベースに作成し、OraRefオブジェクトに関連付けられた情報を戻します。CreateOraObjectおよびUpdateメソッドのペアは、新しい参照可能オブジェクトをデータベースに挿入します。
OO4Oの参照可能オブジェクトを表すOraRefオブジェクトの初期化方法または参照可能オブジェクトのメンバー・メソッドの実行方法については、「Oracle LOB、オブジェクトおよびコレクションのインスタンス化」を参照してください。
プロパティ
メソッド
例
サンプル・コードを実行する前に、必要なデータ型と表がデータベース内にあることを確認してください。OraObject/OraRefの例で使用されているスキーマの記述については、「OraObjectおよびOraRefの例で使用されているスキーマ・オブジェクト」を参照してください。
例: REF値の確保
次の例では、データベースにあるPERSONという参照可能オブジェクトの属性を確保します。
Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim Person as OraRef
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
'create a dynaset object from customers
set OraDynaset = OraDatabase.CreateDynaset("select * from customers", 0&)
'retrieve a aperson column from customers. Here Value property of
' OraField object returns Person OraRef
set Person = OraDynaset.Fields("aperson").Value
'access the attribute of person. This operation pins the Person ref
'value and fetches the Person referenceable object to the client.
msgbox Person.Name
例: 属性値へのアクセス
次の例では、データベースにあるPERSONという参照可能オブジェクトの属性にアクセスします。
Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim Person as OraRef
Dim Address as OraObject
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
'create a dynaset object from customers
set OraDynaset = OraDatabase.CreateDynaset("select * from customers", 0&)
'retrieve a aperson column from customers. Here Value property of OraField
'object returns Person OraRef
set Person = OraDynaset.Fields("aperson").Value
'access the attribute by dot notation.
msgbox Person.Name
'access the attribute using '!' notation ( early binding application)
msgbox Person!Name
'access the attribute by index
msgbox Person(1)
'access the attribute by name
msgbox Person("Name")
'access Addr attribute . This returns Address OraObject.
set Address = Person.Addr
例: 属性値の更新
次の例では、データベースにあるPERSONという参照可能オブジェクトの属性を更新します。
ダイナセットの例
「属性値の更新: ダイナセットの例」を参照してください。
パラメータの例
「属性値の更新: パラメータの例」を参照してください。
例: 参照可能オブジェクトの挿入
次の例では、PERSONという新しい参照可能オブジェクトをデータベースに挿入します。
Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim Person as OraRef
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
'CreateOraObject creates a new referenceable object in the PERSON_TAB object
'table and returns associated OraRef
set Person = OraDatabase.CreateOraObject("PERSON","PERSON_TAB")
'modify the attributes of Person
Person.Name = "Eric"
Person.Age = 35
'Update method inserts modified referenceable object in the PERSON_TAB.
Person.Update