共用方式為


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

請參閱

參考

CRecordset 類別

階層架構圖

CDatabase::BeginTrans

CDatabase::CommitTrans

CDatabase::Rollback

CDBException 類別