віртуальний недійсними Видалення ( );
кинути ( CDBException );
Зауваження
Телефонуйте цієї функції-члена на видалення поточного запису. Після успішного видалення члени дані полів у наборі записів встановлено значення Null, і ви явно повинні викликати однієї з функцій Перемістити щоб перемістити за межі видаленим записом. Після переходу з видаленим записом, це не можливо, щоб повернутися до нього. Якщо джерело даних підтримує угоди, ви можете зробити на Видалення назвати частиною транзакції. Докладніше, перегляньте статтю - Транзакцій (ODBC) в Visual C++ програміста керівництво.
Примітка Якщо ви здійснили, отримання рядків навалом, ви не можете зателефонувати, Видалити. У результаті буде невдалих твердження. Хоча клас CRecordset не надає механізм для оновлення навалом рядків даних, ви можете написати свій власний функції за допомогою функції ODBC API SQLSetPos. Приклад того, як це зробити, перегляньте зразок DBFETCH. Щоб отримати додаткові відомості про отримання рядків навалом, перегляньте статтю набір записів: вилучення записів у базову (ODBC) в Visual C++ програміста керівництво.
Застереження Набір записів повинен бути оновлювану і там має бути дійсним запис поточний набір записів при виклику Видалити; в іншому випадку, виникає помилка. Наприклад, якщо видалити запис, але не перейдіть до запису, перш ніж ви називаєте Видалити знову, Видалити кидає CDBException.
На відміну від AddNew і Редагуватизаклик до Видалення не міститься заклик до оновлення. Якщо не вдається Видалити виклику, поля даних, члени залишаються незмінними.
Приклад
Цей приклад показує набір записів, які створено на кадр підпрограми. Приклад передбачає існування m_dbCust , член змінна типу CDatabase вже підключено до джерела даних.
/ / Створення похідні CRecordset об'єкта
CCustSet rsCustSet (amp m_dbCust);
rsCustSet.Open ();
Якщо ((rsCustSet.IsEOF) | |! (rsCustSet.CanUpdate) | |
! rsCustSet.CanTransact ())
повернення;
Якщо (! m_dbCust.BeginTrans ())
{
/ / Щось зробити, щоб обробляти відмови
}
інше
{
/ / Може бути, перейдіть до запису...
/ / Видалити поточний запис
rsCustSet.Delete ();
// ...
/ / Завершення команди для цієї транзакції
Якщо (< користувач підтверджує угоди >)
m_dbCust.CommitTrans ();
інше / / користувач змінив думку
m_dbCust.rollback ();
}
//
Огляд CRecordset | Члени класу | Ієрархічна діаграма
Дивіться також Database::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CDBException