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);
}
что я не так делаю??? Помогите!!!
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);
}
что я не так делаю??? Помогите!!!