適用対象
説明
OraDynaset
ダイナセット内のレコードの総数を戻します。
OraSQLStmt
INSERT、UPDATEまたはDELETE文で処理されたレコード数を戻します。SQL文の実行でエラーが発生した場合にも処理されたレコード数が戻ります。
設計時には使用できません。実行時は読取り専用です。
使用方法
record_count = oradynaset.RecordCountrecord_count = orasqlstmt.RecordCount
データ型
Long Integer
備考
このプロパティを参照するときは、レコード数を判断するために、Oracleデータベースから結果表全体をただちにフェッチする必要があります。この処理はパフォーマンスに深刻な影響を与える可能性があるため、このプロパティを使用せず、かわりにCOUNT(*)句を使用して別の問合せを実行し、時間的な整合性が保証されているSnapshotIDプロパティを使用してください。使用例は、SnapShotプロパティを参照してください。
CreateDynasetメソッドのORADYN_NOCACHEオプションを使用して、このプロパティを参照すると、暗黙的なMoveLast操作が発生し、カレント・レコードがダイナセットの最終レコードになります。
例
RecordCountの例(OraDynaset)
この例では、RecordCountプロパティを使用して、SELECT文およびOraDynasetを介して取得したレコード数を判断する方法を示します。このコードをコピーして、フォームの定義セクションに貼り付けてください。次に[F5]を押します。
Sub Form_Load ()
'Declare variables as OLE Objects.
Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaset As OraDynaset
'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 the dynaset.
Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&)
'Display the number of records. Note that this causes
'all records to be fetched to ensure an accurate count.
MsgBox OraDynaset.RecordCount & " records retrieved."
End Sub
RecordCountの例(OraSQLStmt)
次の例では、INSERT文およびOraSQLStmtを使用した後に、データベースに挿入されたレコード数を表示する方法を示します。
Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaset As OraDynaset
Dim OraSqlStmt As OraSQLStmt
Dim OraPArray1 As OraParamArray
Dim OraPArray2 As OraParamArray
Dim I As Integer
On Error GoTo ERR_array_sql
'Test case for inserting/updating/deleting multiple rows using parameter arrays
'with SQL statements
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.OpenDatabase("exampledb", "scott/tiger", 0&)
'Create table
OraDatabase.ExecuteSQL ("create table part_nos(partno number, description" & _
"char(50), primary key(partno))")
OraDatabase.Parameters.AddTable "PARTNO", ORAPARM_INPUT, ORATYPE_NUMBER, 10, 22
OraDatabase.Parameters.AddTable "DESCRIPTION", ORAPARM_INPUT, ORATYPE_CHAR, _
10, 50
If OraDatabase.LastServerErr <> 0 Or OraDatabase.LastServerErrText <> "" Then
MsgBox "Error"
End If
Set OraPArray1 = OraDatabase.Parameters("PARTNO")
Set OraPArray2 = OraDatabase.Parameters("DESCRIPTION")
'Initialize arrays
For I = 0 To 9
achar = "Description" + Str(I)
OraPArray1.put_Value 1000 + I, I
OraPArray2.put_Value achar, I
Next I
Set OraSqlStmt = OraDatabase.CreateSql("insert into" & _
"part_nos(partno, description) values(:PARTNO,:DESCRIPTION)", 0&)
If OraDatabase.LastServerErr <> 0 Or OraDatabase.LastServerErrText <> "" Then
MsgBox "Error"
End If
MsgBox "# of records inserted : " & OraSqlStmt.RecordCount
Exit Sub
ERR_array_sql:
MsgBox Err.Description