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


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




 3 - Информация о соединении / ODBC / Visual C++

Шаг 3 - Информация о соединении

Сразу после установки соединения есть возможность проверить его работоспособность, и получить ряд параметров соединения.

Вероятно в первую очередь вы заинтересуетесь правильностью открытия и установки соединения. Эта возможность реализована в функции IsOpen. Эта функция возвращает значение отличное от нуля, если связь установлена.

// BOOL IsOpen( ) const;
//......
CDatabase cdbMyDB;
cdbMyDB.Open("MS Access 97 Database");
if (cdbMyDB.IsOpen()) 
{
	//......
}
//......

При установки связи в прошлый раз мы с Вами передавали строку соединения, но использовали часть параметров. Функция GetConnect() возвращает строку CString, в которой перечислены все параметры используемые при установке соединения.

// const CString& GetConnect();
if (cdbMyDB.IsOpen()) 
{
	AfxMessageBox(cdbMyDB.GetConnect()); 
}

У меня появляется вот такая строка. Чать параметров в строке соединения я не упоминал, а они присутсвуют так как заданы по умолчанию. И если Вы хотите посмотреть парамтры соединения с конкретным сервером, то используйте этот код для получения информации.

3_1.gif (3122 b)

Теперь получим имя базы данных, с которой мы установили соединение.

// CString GetDatabaseName();
cdbMyDB.Open("MS Access 97 Database");
if (cdbMyDB.IsOpen()) 
{
	AfxMessageBox(cdbMyDB.GetDatabaseName());
}

Вот такое окно получается у меня.

3_2.gif (1060 b)

Сейчас Вы должны возмутиться. Как так, зачем нам знать имя, мы же его задаем. А вот нет. Мы задаем универсальное имя, псевдоним по которому не известно, что и где раположенно. А вот именно эта функция позволяет нам на основе псевдонима узнать настоящее лицо - т.е. где и какая конкретно база данных открыта.

Проверим можно ли вносить в базу данных изменения. То есть убедимся, что открыли в режиме отличном от Read Only. Для этого воспользуемся функцией CanUpdate.

// BOOL CanUpdate();
cdbMyDB.Open("MS Access 97 Database");
if (cdbMyDB.IsOpen()) 
{
	if (cdbMyDB.CanUpdate()) AfxMessageBox("Update Yes");
}

И проверим возможность использования транзакций используя функцию CanTransact(). Не все драйвера ODBC имеют данную возможность.

// BOOL CanTransact();
if (cdbMyDB.IsOpen()) 
{
	if (cdbMyDB.CanTransact()) AfxMessageBox("Transact Yes");
}

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