Добалять записи мы научились. Но как оказывается, кто бы мог подумать, их необходимо еще и редактировать. Это являение вызвано несовершенством нашего мира. Например жена может поменяться :-)
Смотрим код:
void CDatebaseDlg::OnOpen() { MyCrec cr(NULL); try { cr.m_nFields=1; cr.Open(CRecordset::dynaset, "SELECT * FROM TABLE3"); cr.Move(0); cr.Edit(); AfxMessageBox(cr.m_Fam); cr.m_Fam="Yaci"; cr.Update(); cr.Close(); } catch(CDBException cdb) { AfxMessageBox(cdb.m_strStateNativeOrigin); } }
Первой камандой мы перемещаемся к первой записи (0). Это всегда возмущало меня. Если запись первая, то и должна начинаться с 1, а не 0. Отсюда столько ошибок !!! Но факт.
Функцией Edit мы разрешаем начать редактировать запись. Эта функция вызовет механизм RFX дабы уведомить о том, что мы будет редактировать. Это нормально. И хорошо, а не так как некоторые начальники, правят еще не прочитав. Соответственно мы можем увидеть, что изменим. Для этого и используется функция AfxMessageBox.
Теперь мы присваиваем новое значение переменной и вызываем Update, дабы закрепить изменение.
Получилось. Вот только если Вы Васю теперь захотите сделать Катей это уже не нормально. Но у кого какой вкус :-)) По мне лучше удалить, чем мы с Вами и займемся.
void CDatebaseDlg::OnOpen() { MyCrec cr(NULL); try { cr.m_nFields=1; cr.Open(CRecordset::dynaset, "SELECT * FROM TABLE3"); cr.Move(1); cr.Delete(); cr.Close(); } catch(CDBException cdb) { AfxMessageBox(cdb.m_strStateNativeOrigin); } }
Просто до ужаса. Открываем CRecordset, переходим на запись, удаляем, закрываем. Что здесь можно написать еще?