備考
Delete
メソッドの使用前に、行を現在の行にしておく必要があります。行が現在の行になっていない場合は、エラーが発生します。
グローバル・トランザクション(つまり、BeginTrans
をすでに発行済)のダイナセットの所定の行でDelete
メソッドをコールすると、CommitTrans
またはRollback
メソッドをコールするまで、選択した行がロックされたままになります。
削除した行を参照すると、エラーが発生します。(MoveFirst
、MovePrevious
、MoveNext
またはMoveLast
メソッドを使用して)データベース内で移動が発生するまで、削除した行とその直後と直前の行は、現在のまま残ります。移動が発生すると、削除した行を再度現在の行にすることはできません。
トランザクションを使用した場合以外に、削除したレコードを復元する方法はありません。
注意: Edit 、AddNew または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