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

前
 
次
 

Updatableプロパティ

説明

指定したダイナセットが更新可能かどうかを戻します。設計時には使用できません。実行時は読取り専用です。

使用方法

if_updatable = oradynaset.Updatable

データ型

Integer(ブール)

備考

指定したダイナセットの行が更新可能な場合はTRUE、それ以外の場合はFALSEを戻します。

結果のダイナセットが更新可能であるかどうかは、Oracle SQLの更新可能性規則、付与されているアクセス権、およびCreateDynasetメソッドの読取り専用フラグによって決まります。

更新可能にするためには、次の3つの条件を満たす必要があります。

  1. SQL文が単純な列リストまたは列リスト全体(*)を参照すること。

  2. SQL文でオプション引数の読取り専用フラグを設定しないこと。

  3. 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