Есть код очистки таблици .DBF с возможностью выбора временного периода (удаление существующей и замена на шаблонную). В NT системах этот код работает без проблем, а вот в Win 98/Millenium ломается на строке if ( set.Clone() ) . Может кто встречался с подобной проблемой?
| Код | void CImportDocsPage::OnClickCleanMenus() { if ( !theApp.pDB ) return; UpdateData(); CWaitCursor waiting; // запишем указаную дату CString strSQL; strSQL.Format( "Delete From [FullMenu] Where TAKEDATE between {ts'%s 00:00:00'} AND {ts'%s 23:59:59'}",m_MenuDate1.Format("%Y-%m-%d"),m_MenuDate2.Format("%Y-%m-%d") ); try { theApp.pDB->ExecuteSQL( strSQL ); } rCATCHreturn("Ошибка при удалении меню в указаном временном промежутке.")
// скопируем пустой DBF-файл в требуемый каталог и назовем его Tempdb.dbf if ( theApp.CopyEmptyDataFile( _T("Fullmenu") ) ) { waiting.Restore(); // перенесем данные из Fullmenu.dbf в Tempdb.dbf (с помощью SQL-запросов) CMenuSet set( theApp.pDB ); if ( set.Clone() ) // ломается именно здесь { waiting.Restore(); // удалим файл Fullmenu.dbf и переименуем файл Tempdb.dbf в FullMenu.dbf theApp.ChangeDataFile( _T("FullMenu") ); waiting.Restore(); } }
strSQL.Format( "INSERT INTO Working(OPERNOTE,OPERDATE) VALUES('Произведена очистка за период с %s ïî %s',%s)",m_MenuDate1.Format("%d-%m-%Y"),m_MenuDate2.Format("%d-%m-%Y"),COleDateTime::GetCurrentTime().Format("{ts'%Y-%m-%d %H:%M:%S'}") ); try { theApp.pDB->ExecuteSQL( strSQL ); } rCATCHreturn("Ошибка при записи в журнал работ.") }
|
Программа написана не мной, моя задача сопровождение, но я только начинаю программить, и поэтому не очень силен в таких вопросах |