A
Alex_Bamuner
Привет всем!
Произошла удивительная вещь!!! Работаю с базой dbf из Visual C++ 6.0. Читаю, редактирую, добавляю записи. А вот кодга дело до удаления дошло - тут-то и началось. После удаления записи из рекордсета открываю базу в Excel и вижу, что удаленная запись исчезла. Потом считываю базу сам из VC++ и вижу, что она на месте! Чудеса! Привожу отрывок кода. Считаем, что объект CDatabase уже создан (OVRA) и база подключена, и что имеется класс-наследник от CRecordset для работы с базой (ORRecordset):
ORRecordset ovr(&OVRA); // тот самый наследник
ovr.m_nFields = 4;
CString SQL = CString("SELECT * FROM TABLE1");
if(ovr.IsOpen()) ovr.Close();
try
{
ovr.Open(CRecordset::dynaset, SQL);
}
catch(...)
{
Error = 4;
return Error;
}
ovr.Move(0);
while(!ovr.IsEOF()) // хочу удалить все записи из таблицы
{
try
{
ovr.Delete();
}
catch(...)
{
// обработка исключения, хотя оно не возникает!!!
}
ovr.MoveNext();
}
ovr.Close();
Error = 0;
return 0;
Заранее благодарю за помощь и любые комментарии!
Произошла удивительная вещь!!! Работаю с базой dbf из Visual C++ 6.0. Читаю, редактирую, добавляю записи. А вот кодга дело до удаления дошло - тут-то и началось. После удаления записи из рекордсета открываю базу в Excel и вижу, что удаленная запись исчезла. Потом считываю базу сам из VC++ и вижу, что она на месте! Чудеса! Привожу отрывок кода. Считаем, что объект CDatabase уже создан (OVRA) и база подключена, и что имеется класс-наследник от CRecordset для работы с базой (ORRecordset):
ORRecordset ovr(&OVRA); // тот самый наследник
ovr.m_nFields = 4;
CString SQL = CString("SELECT * FROM TABLE1");
if(ovr.IsOpen()) ovr.Close();
try
{
ovr.Open(CRecordset::dynaset, SQL);
}
catch(...)
{
Error = 4;
return Error;
}
ovr.Move(0);
while(!ovr.IsEOF()) // хочу удалить все записи из таблицы
{
try
{
ovr.Delete();
}
catch(...)
{
// обработка исключения, хотя оно не возникает!!!
}
ovr.MoveNext();
}
ovr.Close();
Error = 0;
return 0;
Заранее благодарю за помощь и любые комментарии!