C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 21 - RepairDatabase - Восстановление базы данных / DAO / Visual C++

Шаг 21 - RepairDatabase - Восстановление базы данных

Итак, база данных может быть повреждена. Вы увидите это, если будете открывать ее в Access. Возьмите файл, который прилагается к этому шагу и попробуйте открыть его в Access. Вы увидите вот такую надпись:

21_1.gif (4051 b)

В Access есть возможность восстановить файл. Вот здесь:

21_2.gif (5137 b)

Вы в своей программе можете предусмотреть такую же возможность. Вот пример когда по нажатию на кнопку в диалоговом окне производится процедура восстановления:

void CTestRepDlg::OnButton1() 
{
	CDaoWorkspace cd;
	cd.RepairDatabase("c:/error.mdb"); 
}

Функция такая:

static void PASCAL RepairDatabase( LPCTSTR lpszName );
throw( CDaoException, CMemoryException );

В lpszName содержится имя восстанавливаемой базы данных.

Сразу скажу, что не все восстанавливается. Я тут около 30 минут портил базу данных для того, чтобы ее можно было восстановить. То есть испортить не на совсем. Вот получилось. Что я сделал ??? Открыл ее в бинарном редакторе и стер название MSysModules2. Вот она и испортилась. Но самое обидное, что если Вы удалите часть файла, то уже не поможет ничего. Удалите кусок из середины или конец и уже все. А это и случается при отключении питания например. Так что восстановление не очень хорошее. Вообще это восстановление подразумевает другое. Я тут вычитал такую фразу. Если Ваша база данных ведет себя непонятным образом, то надо запустить восстановление.

Кстати как открыть базу данных в бинарном редакторе если его нет ??? Просто VC умеет. File->Open->error.mdb. И он откроет как бинарный файл. Вы можете явно это указать при открытии.

21_3.gif (2433 b)

И еще испортить можно так, что DAO совершит некорректную операцию. А это просто свинство. Я тут как испортил ?! Запустил Access, чтобы он восстановил, а он вылетел сославшись на DAO. Как это понимать ??? Microsoft try поленилась поставить ??? Или эта ошибка не дала исключения, а просто выбила код.

Кстати по поводу успешного восстановления, как оптимистически пишет Access. То что файл откроется не говорит о том, что там будет Таблица или Ваши данные. Вот и верь им потом.


Загрузить проект | | |
Автор Каев Артем.
[AD]