備考
指定したダイナセットの行が更新可能な場合は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