Использование ODBC в Visual C++ - Как Колю сделать Васей?
ОГЛАВЛЕНИЕ
Как Колю сделать Васей?
Добалять записи мы научились. Но как оказывается, кто бы мог подумать, их необходимо еще и редактировать. Это являение вызвано несовершенством нашего мира. Например жена может поменяться :-)
Смотрим код:
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, переходим на запись, удаляем, закрываем. Что здесь можно написать еще?