備考
指定したダイナセットの行が更新可能な場合はTRUE、それ以外の場合はFALSEを戻します。
結果のダイナセットが更新可能であるかどうかは、Oracle SQLの更新可能性規則、付与されているアクセス権、およびCreateDynasetメソッドの読取り専用フラグによって決まります。
更新可能にするためには、次の3つの条件を満たす必要があります。
SQL文が単純な列リストまたは列リスト全体(*)を参照すること。
SQL文でオプション引数の読取り専用フラグを設定しないこと。
Oracle Databaseで、選択された問合せ行のROWID参照が可能であること。
SQL文はこれらの基準を満たしていない場合でも処理されますが、結果のダイナセットは更新不可になり、FALSEが戻ります。
例
この例では、Updatableメソッドの使用方法を示します。このコードをコピーして、フォームの定義セクションに貼り付けてください。次に[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 an updatable dynaset using a simple query.
Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&)
Call IsDynUpdatable(OraDynaset)
'Create a non-updatable dynaset using column aliases.
Set OraDynaset = OraDatabase.CreateDynaset("select ename EmployeeName," & _
"empno EmployeeNumber, sal Salary from emp", 0&)
Call IsDynUpdatable(OraDynaset)
'Create a non-updatable dynaset using a join.
Set OraDynaset = OraDatabase.CreateDynaset("select ename, emp.deptno," & _
"loc from emp, dept where emp.deptno = dept.deptno", 0&)
Call IsDynUpdatable(OraDynaset)
End Sub
Sub IsDynUpdatable (odyn As OraDynaset)
'Check to see if the dynaset is updatable.
If odyn.Updatable = True Then
MsgBox "Created an UPDATABLE dynaset from: '" & odyn.SQL & "'"
Else
MsgBox "Created a READ-ONLY dynaset from: '" & odyn.SQL & "'"
End If
End Sub