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 руб./мес


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




 20 - CompactDatabase(), оптимизация и преобразование версий / DAO / Visual C++

Шаг 20 - CompactDatabase(), оптимизация и преобразование версий

Эта функция позволяет уплотнить базу данных и оптимизировать доступ. Если вы интенсивно работаете с базами данных, т.е. удаляете, вставляете и так далее, то в базе данных появляются пустоты. Еще эта функция поможет, если Вы переводите проект из старых версий. Эта функция принадлежит классу CDaoWorkspace:

static void PASCAL CompactDatabase
(
	LPCTSTR lpszSrcName,		// это будем уплотнять
	LPCTSTR lpszDestName,		// это получим
	LPCTSTR lpszLocale = dbLangGeneral,	// язык
	int nOptions = 0 );		// это опции для смены версии и шифровки
	throw( CDaoException, CMemoryException 
);

static void PASCAL CompactDatabase
(
	LPCTSTR lpszSrcName, 
	LPCTSTR lpszDestName, 
	LPCTSTR lpszLocale, 
	int nOptions, 
	LPCTSTR lpszPassword );
	throw( CDaoException, CMemoryException 
);

Имя должно указывать на закрытую базу данных, Вы должны указывать и расширения. В имени вы можете использовать пути UNC (Смотри MSDN: "Шаг 18 - Universal Naming Convention - UNC"). Пароль может понадобиться, если Вы хотите уплотнить базу данных защищенную паролем. Этот параметр требует специального форматирования. Вот так:

;PWD = lpszPassword

Язык отвечает за кодировку символов в базе данных и естественно влияет на сортировку.

Опции могут быть следующими:

  • DbEncrypt - Зашифруют базу данных при уплотнении.
  • DbDecrypt - Расшифрует база данных при уплотнении.
  • DbVersion10 - Создают базу данных, которая использует версию 1.0 Microsoft Jet database при уплотнении.
  • DbVersion11 - Создают базу данных, которая использует версию 1.1 Microsoft Jet database при уплотнении.
  • DbVersion20 - Создают базу данных, которая использует версию 2.0 Microsoft Jet database при уплотнении.
  • DbVersion30 - Создают базу данных, которая использует версию 3.0 Microsoft Jet database при уплотнении.

В документации написано, что этот метод можно применить для копирования базы данных. Эта функция является аналогом функции MS Access.

20_1.gif (2896 b)

Ну пример маленький. Специально с паролем:

void CTestRepDlg::OnButton1() 
{
	CDaoWorkspace cd;
	cd.CompactDatabase("c:/step.mdb","c:/new.mdb",
		dbLangCyrillic,dbEncrypt,";PWD=123");
}

| |
Автор Каев Артем.
[AD]