説明
OraDynaset
ダイナセット内のレコードの総数を戻します。
OraSQLStmt
INSERT、UPDATEまたはDELETE文で処理されたレコード数を戻します。SQL文の実行でエラーが発生した場合にも処理されたレコード数が戻ります。
設計時には使用できません。実行時は読取り専用です。
備考
このプロパティを参照するときは、レコード数を判断するために、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