CRecordset::Delete
刪除目前的資料錄。
virtual void Delete( );
備註
中的成功刪除之後,資料錄集的欄位資料成員設定為 Null 值,因此,您必須明確地呼叫其中一個 移動 函式以移動已刪除資料錄。 當您移動已刪除資料錄,回到是不可能的。 如果資料來源支援交易,您可以 刪除 呼叫部分交易。 如需詳細資訊,請參閱本文 交易 (ODBC)。
注意事項 |
---|
如果您已實作大量資料列擷取,就無法呼叫 刪除。這樣會造成失敗的判斷提示。雖然類別 CRecordset 為更新大量資料列不提供一種機制,使用 ODBC API 函式 SQLSetPos,您可以撰寫自己的函式。如需大量資料列擷取的詳細資訊,請參閱本文 資料錄集:擷取大量資料錄 (ODBC)。 |
警告
資料錄集必須是可更新的,且必須在資料錄集的有效記錄目前的,當您呼叫時, 刪除否則,便會發生錯誤。例如,在中,如果您刪除資料錄,但不移動至新的資料錄,然後再將它之前呼叫 刪除 , 刪除 擲回 CDBException。
不同於 AddNew 和 編輯刪除 ,對的呼叫不會由 更新的呼叫之後。 如果 刪除 呼叫失敗,欄位資料成員會保持不變。
例外狀況
這個方法會擲回型別 **CDBException***的例外狀況。
範例
這個範例顯示函式的架構建立的資料錄集。 這個範例假設 m_dbCust的存在,型別 CDatabase 的成員變數已連接至資料來源。
// Create a derived CRecordset object
CCustomer rsCustSet(&m_dbCust);
rsCustSet.Open();
if(rsCustSet.IsEOF() || !rsCustSet.CanUpdate() ||
!rsCustSet.CanTransact())
{
return;
}
m_dbCust.BeginTrans();
// Perhaps scroll to a new record...
// Delete the current record
rsCustSet.Delete();
// Finished commands for this transaction
if(IDYES == AfxMessageBox(_T("Commit transaction?"), MB_YESNO))
m_dbCust.CommitTrans();
else // User changed mind
m_dbCust.Rollback();
需求
Header: afxdb.h