備考
Update
メソッドは、AddNew
またはEdit
操作を完了して、そのセッションでBeginTrans
操作が保留されていないかぎり、ただちに変更内容をデータベースにコミットします。
グローバル・トランザクション(つまり、BeginTrans
操作が発行済)内のダイナセットの所定の行でUpdate
メソッドをコールすると、CommitTrans
またはRollback
メソッドをコールするまで、選択した行がロックされたままになります。
ミラー化されたデータ・イメージも更新されるため、データの参照および更新を続行するために問合せを再評価する必要はありません。ミラー・イメージの更新に使用するメソッドは、このダイナセットのOraDatabase
オブジェクトを作成したOpenDatabase
メソッドに渡されたオプション・フラグによって決まります。
このダイナセットがデータ・コントロールに付加されている場合、データ・コントロール・コードのValidate
イベントで、必要に応じて、更新要求を取り消すことができます。更新が完了すると、ダイナセットに関連付けられているすべてのバインド済コントロールに更新内容が通知されるため、データの変更内容が自動的に反映されます。
例
この例では、AddNew
およびUpdate
メソッドを使用して、ダイナセットに新規レコードを追加する方法を示します。このコードをコピーして、フォームの定義セクションに貼り付けてください。次に[F5]を押します。
Sub Form_Load () 'Declare variables 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 OraDynaset Object. Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&) 'Begin an AddNew. OraDynaset.AddNew 'Set the field(column) values. OraDynaset.Fields("EMPNO").Value = "1000" OraDynaset.Fields("ENAME").Value = "WILSON" OraDynaset.Fields("JOB").Value = "SALESMAN" OraDynaset.Fields("MGR").Value = "7698" OraDynaset.Fields("HIREDATE").Value = "19-SEP-92" OraDynaset.Fields("SAL").Value = 2000 OraDynaset.Fields("COMM").Value = 500 OraDynaset.Fields("DEPTNO").Value = 30 'End the AddNew and Update the dynaset. OraDynaset.Update End Sub