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

前
 
次
 

Deleteメソッド

説明

指定したダイナセットの現在の行を削除します。

使用方法

oradynaset.Delete
oradynaset.DbDelete

備考

Deleteメソッドの使用前に、行を現在の行にしておく必要があります。行が現在の行になっていない場合は、エラーが発生します。

グローバル・トランザクション(つまり、BeginTransをすでに発行済)のダイナセットの所定の行でDeleteメソッドをコールすると、CommitTransまたはRollbackメソッドをコールするまで、選択した行がロックされたままになります。

削除した行を参照すると、エラーが発生します。(MoveFirstMovePreviousMoveNextまたはMoveLastメソッドを使用して)データベース内で移動が発生するまで、削除した行とその直後と直前の行は、現在のまま残ります。移動が発生すると、削除した行を再度現在の行にすることはできません。

トランザクションを使用した場合以外に、削除したレコードを復元する方法はありません。


注意:

EditAddNewまたはDeleteメソッドをコールすると、未処理のEditまたはAddNewのコールは処理前に取り消されます。Updateメソッドを使用して保存されていない未処理の変更は、すべて取消処理中に失われます。

この例では、Deleteメソッドを使用してデータベースからレコードを削除する方法を示します。このコードをコピーして、フォームの定義セクションに貼り付けてください。次に[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. Only select the employees in Department 10.
Set OraDynaset = OraDatabase.CreateDynaset("select * from emp where" & _
          "deptno=10", 0&)
 
 Do Until OraDynaset.EOF
   OraDynaset.Delete
   OraDynaset.MoveNext
 Loop
 MsgBox "All employees from department 10 removed."
 
End Sub