ヘッダーをスキップ
Oracle® Objects for OLE開発者ガイド
11gリリース2 (11.2) for Microsoft Windows
B58887-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Clone(OraObject/Ref)メソッド

説明

OraObjectまたはOraRefオブジェクトのクローンを戻します。

使用方法

Set OraObjectClone = OraObject.CloneSet OraRefClone = OraRef.Clone

備考

このメソッドは、ValueインスタンスまたはREF値のコピーを作成し、そのコピーに関連付けられているOraObjectまたはOraRefオブジェクトを戻します。このコピーは、ダイナセットの移動操作またはOraSQLStmtのリフレッシュ操作によって変更されることはありません。このメソッドが戻すOraObjectオブジェクトは、基礎となる値インスタンスの属性値にアクセスすることはできますが、その属性値を変更する操作はできません。

サンプル・コードを実行する前に、必要なデータ型と表がデータベース内にあることを確認してください。次の例については、「OraObjectおよびOraRefの例で使用されているスキーマ・オブジェクト」を参照してください。

例: OraObjectオブジェクトに対するCloneメソッド

次の例では、Cloneメソッドの使用方法を示します。

Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim Address as OraObject
Dim AddressClone 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 person_tab
set OraDynaset = OraDatabase.CreateDynaset("select * from person_tab",0&)
 
'retrieve a address column from person_tab. Here Value property of OraField object
'returns Address OraObject  
set Address = OraDynaset.Fields("Addr").Value
 
'here Address OraObject points to Address value instance in the server
'for the first row 
msgbox Address.Street
 
'move to second row
OraDynaset.MoveNext
 
'here Address OraObject points to Address value instance in the server
'for the second row   
msgbox Address.Street
 
'get the clone of Address object. This clone points to the copy of
'the value instance for second row 
set AddressClone = Address.Clone
 
'move to third row
OraDynaset.MoveNext
 
'here Address OraObject points to Address value instance in the server 
'for third row  
msgbox Address.Street
 
'here AddressClone OraObject points to copy of Address value instance
' in the server for second row
msgbox AddressClone.Street

例: OraRefオブジェクトに対するCloneメソッド

次の例では、Cloneメソッドの使用方法を示します。サンプル・コードを実行する前に、必要なデータ型と表がデータベース内にあることを確認してください。

 
Dim OraSession as OraSession
Dim OraDatabase as OraDatabase
Dim OraDynaset as OraDynaset
Dim Person as OraRef
Dim PersonClone 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
 
'here Person OraRef points to Person Ref value in the server for the first row 
msgbox Person.Name
 
'move to second row
OraDynaset.MoveNext
 
'here Person OraRef points to Person Ref value in the server for the second row 
msgbox Person.Name
 
'get the clone of Person object. 
'This clone points to the copy of the Ref for second row
set PersonClone = Person.Clone
 
'move to third row
OraDynaset.MoveNext
 
'here Person OraRef points to Person Ref value 
'in the server for the third row 
msgbox Person.Name
 
'here PersonClone OraRef points to Person Ref value 
'in the server for the second row 
msgbox PersonClone.Name