適用対象
説明
ダイナセット・オブジェクトの複数のレコードをVariant型のSAFEARRAYに取り出します。
使用方法
Array =OraDynaset.GetRows(num_rows, start, fields )
引数
このメソッドの引数は、次のとおりです。
| 引数 | 説明 |
|---|---|
num_rows [オプション] |
取り出すレコードの数を表すInteger。デフォルト値はダイナセット内の行全体の数です。 |
start [オプション] |
GetRows操作を開始するダイナセットの開始位置を表すInteger。デフォルト値はダイナセットの現在の位置です。 |
fields [オプション] |
単一のフィールド名、フィールド位置、フィールド名の配列またはフィールド位置番号の配列を表すVariant。GetRowsメソッドはこれらのフィールド内のデータのみを戻します。 |
備考
ダイナセットから2次元の配列にレコードをコピーするには、GetRowsメソッドを使用します。最初の添字はフィールドを識別し、2番目の添字は行番号を識別します。GetRowsメソッドがデータを戻すときに、Array変数は自動的に適切なサイズに設定されます。
GetRowsメソッドのコールは、ダイナセット・オブジェクトの現在の行位置を変更しません。
例
次の例では、GetRowsメソッドを使用してデータを取り出します。
Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaset As OraDynaset
Dim row, col As Integer
Dim fields() As String
'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&)
Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&)
'The following line executes GetRows to get all records
data_array = OraDynaset.GetRows()
'Now display all the data in data_array
For row = 0 To UBound(data_array, 2)
For col = 0 To UBound(data_array, 1)
Debug.Print data_array(col, row)
Next col
Next row
'The following lines execute GetRows to get the data from
'the ename and empno fields starting at 5
ReDim fields(2)
fields(0) = "EMPNO"
fields(1) = "ENAME"
'Execute GetRows
data_array = OraDynaset.GetRows(, 5, fields)
'Now display all the data in data_array
For row = 0 To UBound(data_array, 2)
For col = 0 To UBound(data_array, 1)
Debug.Print data_array(col, row)
Next col
Next row