Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Відкриття з'єднання з базою даних.

Щоб створити новий об'єкт CDataBase і підключити його до бази даних, необхідно сконструювати цей об'єкт і викликати його метод OpenEx():

 

virtual BOOL OpenEx( LPCTSTR lpszConnectString, DWORD dwOptions = 0 );

 

Під час виклику OpenEx() для визначення повного рядка з'єднання можна використовувати параметр lpszConnectString:

 

“DSN=MyDataSource; UID=sa; PWD=DontTell”

 

У даному рядку визначається ім'я джерела даних, до якого виконується підключення, ідентифікатор користувача й пароль доступу до цього джерела. Крім того, у цьому рядку можуть знаходитися додаткові пари «ключове слово - значення», які підтримуються драйвером ODBC для даного джерела даних.

Щоб ще більше полегшити розробку, для параметра lpszConnectString можна задати значення NULL. У цьому випадку користувач може вибрати джерело даних у діалоговому режимі.

За замовчуванням під час виклику методу OpenEx() база даних відкривається як спільно використовуваний ресурс із правом запису і бібліотека курсорів при цьому не завантажується. Ви можете змінити спосіб відкриття бази даних з використанням комбінації флагів у параметрі dwOptions:

 

CDatabase::openExclusive Зараз не використається.
CDatabase::openReadOnly Відкриває базу даних із правом доступу «тільки для читання»
CDatabase::useCursorLib Завантажує бібліотеку курсорів ODBC, що підтримує статичні набори записів типу snapshot для драйверів, у яких немає вбудованої підтримки. Однак, якщо бібліотека курсорів завантажена, динамічні курсори будуть недоступні навіть за умови, що драйвер їх підтримує.
CDatabase::noOdbcDialog Запобігає виводу на екран будь-яких діалогових вікон з'єднань.
CDatabase::forceOdbcDialog Означає, що діалогове вікно ODBC для вибору з'єднання завжди буде доступне користувачеві.

 

При успішному підключенні до джерела даних метод OpenEx() повертає значення TRUE. Значення FALSE буде повернуто тільки в тому випадку, якщо користувач перервав діалог вибору з'єднання. Під час виникнення в процесі з'єднання такої помилки, як перевищення часу очікування або введення неправильного пароля, генерується виняткова ситуація. У наступному прикладі метод OpenEx() показаний у дії:

 

CDataBase* pDb;

BOOL bStatus;

// розподіл нового екземпляра CDataBase

pDb = new CDataBase;

// встановлення часу очікування в секундах

pDb->SetLoginTimeout(3);

// відкриття бази даних, перехоплення виняткових ситуацій

try

{

bStatus = pDb->OpenEx(“DSN=MyDataSourse”);

if(bStatus)

TRACE(“База даних відкрита успішно.”);

else

TRACE(“Відкриття джерела даних перервано.”);

}

catch(CMemoryException* pEx)

{

pEx->ReportError();

}

catch(CDBException* pEx)

{

pEx->ReportError();

TRACE(“RetCode:%d strError: [%s] strState: [%s]\n”, pEx->m_nRetCode,

pEx->m_strError, pEx->m_strStateNativeOrigin);

 

}

Open().

Крім методу OpenEx(), клас CDataBase має метод Open(), що відкриває базу даних таким же чином, однак при цьому використовує трохи відмінний формат параметрів:

 

virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE,

BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = _T("ODBC;"),

BOOL bUseCursorLib = TRUE);

 

Рядок lpszDSN містить ім'я джерела даних. Рядок lpszConnect включає будь-які інші параметри, наявні в параметрі lpszConnectString методу OpenEx(). Помітимо, що у виклику Open() параметр lpszConnect повинен містити рядок "ODBC;", що дозволяє використовувати реалізації додаткових бібліотек для роботи з базами даних. Параметри bExclusive, bReadOnly і bUseCursorLib дозволяють використовувати логічні значення для параметрів, які передавалися параметром dwOptions методу OpenEx().

Під час використання методів Open() або OpenEx() після закінчення роботи необхідно закрити з'єднання із джерелом даних з використанням виклику CDataBase::Close().




Переглядів: 1011

<== попередня сторінка | наступна сторінка ==>
Клас CDataBase. | Дані-члени класу CRecordset.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.008 сек.