• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Вызов Crescordset::update() при редактировании поля

  • Автор темы Alex_Bamuner
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alex_Bamuner

Привет всем. Такая проблема: подключился к базе, получил рекордсет, хочу отредактировать определенное поле. Вот кусок кода:
UpdateData(TRUE);
rs.m_nFields=8;
CString SQL = "SELECT Наименование FROM БАЗА WHERE код = '1234'";
if(rs.IsOpen()) rs.Close();

try
{
rs.Open(CRecordset::dynaset,SQL,CRecordset::none);

}
catch(CDBException cdb)
{
AfxMessageBox(cdb.m_strStateNativeOrigin);
}

CDBVariant var;

rs.GetFieldValue("Наименование",var);
MessageBox(*var.m_pstring); // смотрю что там хранится
rs.Move(0);
try
{
rs.Edit();
}
catch(CDBException cdb)
{
AfxMessageBox(cdb.m_strStateNativeOrigin );
}
catch(CMemoryException cm)
{
MessageBox("cm");
}
rs.m_name = CString("Пельмешки"); // хочу вписать туда пельмешки :)
try
{
rs.Update(); // А вот тут все падает с сообщением: Недопустимый индекс дескриптора
}
catch(CDBException cdb)
{
MessageBox(cdb.m_strStateNativeOrigin);
}

что я не так делаю??? Помогите!!!
 
S

sdriver

To refresh records that may have been changed or added since the Open call, call the object's Requery member function.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!