Updatable Property

Applies To

OraDynaset Object


Returns whether or not the specified dynaset is updatable. Not available at design time and read-only at run time.


if_updatable = oradynaset.Updatable

Data Type

Integer (Boolean)


Returns True if the rows in the specified dynaset can be updated; otherwise, it returns False.

The updatability of the resultant dynaset depends on the Oracle SQL rules of updatability, on the access you have been granted, and on the read-only flag of the CreateDynaset method.

To be updatable, three conditions must be met:

  1. The SQL statement must refer to a simple column list or to the entire column list (*).

  2. The SQL statement must not set the read-only flag of the options argument.

  3. Oracle Database must permit ROWID references to the selected rows of the query.

Any SQL statement that does not meet these criteria is processed, but the results are not updatable and this property returns False.


This example demonstrates the use of the Updatable method. Copy and paste this code into the definition section of a form. Then, press 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 & "'"
  MsgBox "Created a READ-ONLY dynaset from: '" & odyn.SQL & "'"
 End If
End Sub