Visual C++. Бази даних \Укр.\

В ході написання даної курсової роботи були створені такі програмні продукти: Консольне застосування - ODBC_Excel програма ODBC, що може бути

Visual C++. Бази даних \Укр.\

Курсовой проект

Разное

Другие курсовые по предмету

Разное

Сдать работу со 100% гаранией
кта було ще додано Tips of the Day:

 

 

 

Обєкти доступу до даних.

Data Access Objects (Обєкти доступу до даних) один з останніх виробів Microsoft в технології доступу до баз даних. Ця технологія застосовується до баз даних в Microsoft Visual Basic, Microsoft Access та Visual Basic for Application; починаючи з Visual C++4, за допомогою набору спеціалізованих класів MFS ця технологія доступна і для програміста Visual C++.

DAO надає можливість доступу і маніпулювання базами даних за допомогою машини баз даних Microsoft Jet. За допомогою Jet-машини можна отримувати доступ до локальних і віддалених базам даних через драйвери ODBC.

Технологія DAO базується на OLE. Вона значно спрощується класами DAO в MFS.

Багато функцій DAO використовують оператори мови SQL. Можна скористатися SQL-оператором SELECT для отримання даних з бази даних або SQL-операторами UPDATE, INSERT та DELETE для зміни вмісту бази даних. Найпростіший спосіб створення SQL-операторів для використання з обєктами DAO- створення запиту з Microsoft Access, збереження в базі даних та доступ до нього за допомогою обєкта QueryDef.

Visual C++ запезпечує інтенсивну підтримку для побудови застосувань DAO за допомогою майстера AppWizard. В додаток до ODBC майстер AppWizard дозволяє створювати застосування, засновані на класах DAO.

 

Класи DAO.

Існує 5 основних та 2 допоміжних класи, повязаних з DAO.

Всі обєкти DAO похідні від DBEngine; більш того, всі обєкти бази даних похідні від обєктів Workspace. Проте якщо не треба маніпулювати захищеними базами даних, як правило, нема необхідності звертатися до жодного з них, а достатньо первинний обєкт Workspace визивати для всіх транзакцій.

Обєкти бази даних і набору записів достатньо очевидно представляють бази даних і набори виборок (таблиці, набори записів або динамічні набори) в ціх базах даних.

Обєкти визначення запитів (QueryDef) використовуються для виконання конкретних SQL-запитів по відношенню до бази даних. Для доступу до інформації в базі даних через конкретний запит визначення запитів звичайно використовується разом з наборами записів.

Обєкти визначення таблиць (TableDef) представляють структуру таблиць в базі даних. За допомогою обєктів визначення таблиць можна створювати нові таблиці та змінювати структуру та характеристики існуючих.

Існують ще декілька типів обєктів DAO. Вони (Field, Parametr, Index, User, Group, Error) не представлені конкретними класами MFS. Обєкти DAO цього типу доступні через інші відповідні класи DAO MFS.

Обєкти CDaoRecordset представляють набори записів. Такий набор може представляти записи в таблиці, динамічний і статичний набори. Набір записів типу таблиці є поновлюваним і представляє записи в одній таблиці. Набір записів динамічного типу представляє записи з одної або декількох таблиць результатом запиту. Записи динамічного типу також поновлювані. Статичній набір може містити поля з одної або декількох таблиць, але ці поля не поновлювані. Статичний набір це статична копія записів, що використовується для пошуку даних або створення звітів.

Набір записів представляє велику кількість функцій. Найважливішими з них є функції переміщення по набору записів та функції поновлення даних. К функціям переміщення відносяться Find, FindFirst, FindLast, FindPrev, Move, MoveFirst, MoveLast, MoveNext, MovePrev. До числа функцій поновлення входять AddNew, CancelUpdate, Delete, Edit, Update.

Інші функції, повязані з переміщенням, - GetAbsolutePosition, GetBookmark, GetPercenrPosition, SetAbsolutePosition, SetBookmark, SetPercentPosition.

Клас CDaoRecordset представляє різні функції атрибутів для установки та отримання атрибутів набору записів. Напиклад, функцію CanUpdate можна використовувати для визначення, чи є набір записів поновлюваним; функція SetCurrеntIndex застосовується для установки поточного індексу на набір записів таблиці.

Звичайно клас CDaoRecordset використовується шляхом створення похідного від нього класу набору записів, додавання змінних класу, що представляють поля, та перекриттям функції DoFieldExchange для підтримки обміну даними між базой даних та змінними класу. Проте існує декілька методів, що забезпечують альтернативну можливість. До їх числа входять функції GetFieldValue та SetFieldValue, які представляють можливість прямого доступу до значення поля за імям. Цей метод називають динамічним звязуванням, на противагу статичному, який виконується за допомогою DoFieldExchange.

Інші операції з наборами даних можна використовувати для керування локально підтримуємим кешем записів і для маніпулювання індексами набору записів.

Клас CDaoDatabase представляє зєднання з базою даних. Зєднання відбувається викликом функції CDaoDatabase::Open і переривається викликом CDaoDatabase::Close. Нова база даних може бути створена за допомогою функції CDaoDatabase::Create.

Клас CDaoDatabase представляє функції атрибутів; наприклад, GetName можна використовувати для отримання імені бази даних, а IsOpen для визначення, чи відкрито зєднання, що представляється обєктом CDaoDatabase.

Інші методи використовуються для маніпулювання наборами обєктів визначення таблиць і визначення запитів для цієї таблиці даних. Зокрема, функцію DeleteTableDef використовують для видалення з бази даних не тільки обєкта TableDef DAO, але і основної таблиці і всіх її даних.

Клас CDaoWorkspace представляє сеанси баз даних. Як правило, не треба створювати обєкти типу CDaoWorkspace, якщо немає необхідності використовувати спеціальні функціональні можливості, що доступні за допомогою цього класу, або отримувати доступ до баз даних, захищених паролем.

Робочій простір DAO може бути створений викликом функції CDaoWorkspace::Create. Аргументи цієї функції вказують імя робочого простору, імя користувача та пароль. Існуючий обєкт робочого простору може бути відкритий викликом CdaoWorkspace::Open; робочий простір по замовченню може бути явно відкритий шляхом передачі цій функції параметра NULL.

Існує декілька функцій, які маніпулюють базами даних та самою Jet-машиною баз даних. Наприклад, базу даних можна зжати або відновити викликом функції CompacDatabase або RepairDatabase. Інші функції можна використовувати для маніпулювання іменами користувачів, паролями або іншими атрибутами баз даних.

Клас CDaoQueryDef представляє визначення запитів. Для створення нового визначення запиту слід скористатися функцією CQueryDef::Create; для доступу до визначення запиту, збереженого в базі даних, необхідно використовувати функцію CQueryDef::Open. Щойно створений запит може бути доданий до бази даних викликом функції CQueryDef::Append.

Обєкти CQueryDef використовуються разом з обєктами CRecordset для отримання даних з бази даних, а також - безпосередньо; для виконання запиту на дію, яка міняє дані в базі даних, слід використовувати функцію CQueryDef::Execute.

Інші методи CQueryDef використовують для установки і отримання атрибутів визначення запитів і для маніпулювання полями запитів і параметрами.

Клас CDaoTableDef представляє визначення таблиць. Визначення таблиці описує структуру і атрибути таблиці в базі даних.

Існуюче в базі даних визначення таблиці може бути відкрито викликом функції CDaoTableDef::Open. Нове визначення таблиці може бути створене викликом функції CDaoTableDef::Create. Для додавання до бази даних таблиці, що відповідає новому визначенню, слід викликати функцію Append.

Поля можуть створюватися і видалятися за допомогою функцій CreateField та DeleteField. Індекси для таблиці можуть бути створені або видалені викликом функцій CreateIndex та DeleteIndex. Інші функції можна використовувати для установки або отримання різних атрибутів таблиці, наприклад, GetFieldCount повертає кількість полів в таблиці, а SetValidationRule використовується для присвоєння полю умови перевірки на значення.

Крім цих основних класів DAO операції DAO використовують два додаткових класи: CDaoFieldExchange та CDaoException.

CDaoFieldExchange використовується при звертаннях до CDaoRecordset::DoFieldExchange. Обєкт типу СdaoFieldExchange визначає поле, що змінюється операцією обміну полями, та забезпечує інші параметри, що характерізують обмін полями.

Всі класи DAO використовують обєкти виключення типу CDaoException для повідомлення про помилки.

Побудова застосування DAO.

.Для побудови застосування DAO необхідно перш за все створити джерело даних. Нехай ним буде база даних, створена в Microsoft Access. База даних Employee складається з 2 таблиць, де міститься інформація про працівників (їх імя та вік), та відомості про робочі плани (назва плану та максимальний вік робітника, якому буде дозволено займатися цим планом).

Створення застосування-DAO здійснено за допомогою AppWizard. Проект однодокументний, в якості джерела даних (Data Source) вибано DAO, а дійсним файлом бази даних базу даних Employee.

Структура застосування, яка створюється AppWizard схожа на відповідну для ODBC.

Класи застосування:

 

Новий клас CDAODBSet (DAODB назва створюваного проекту) породжений від CDaoRecordset і представляє набір рядків, які будуть вибиратися з обєднання всіх таблиць. AppWizard вставляє змінні, які відповідають стовпцям (полям) таблиць.

Обявлення класу CDAODBSet:

class CDAODBSet : public CDaoRecordset

{

public:

CDAODBSet(CDaoDatabase* pDatabase = NULL);

DECLARE_DYNAMIC(CDAODBSet)

// Field/Param Data

//{{AFX_FIELD(CDAODBSet, CDaoRecordset)

Cstringm_LastName;

Cstringm_FirstName;

longm_Age;

Cstringm_Name;

Похожие работы

<< < 2 3 4 5 6 7 8 > >>