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

前
 
次
 

RecordCountプロパティ

説明

  • 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