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


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


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


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


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


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


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


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


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


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



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






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

Щоб створити новий об'єкт 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().




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

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

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

 

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


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