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

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

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

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

Разное

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

Разное

Сдать работу со 100% гаранией
чового слова UNION.

SELECT * FROM Students_DCSS

UNION

SELECT * FROM Students_FNS

Оператор INSERT.

За допомогою оператора INSERT можна вставити дані в певне місце в базі даних.

INSERT INTO Students_vipuskniki

VALUES (1, Sveta Fiyalka, DCSS, 95)

Оператор DELETE.

DELETE FROM Student WHERE Student.Rating<61

Оператор UPDATE.

За допомогою цього оператора можна змінювати значення в існуючих рядках бази даних:

UPDATE Employee SET Salary+100

ODBC в MFS-застосуваннях.

Використання ODBC значно спрощується за допомогою Microsoft Foundation Classes Library (Бібліотека основних класів Microsoft). Прості застосування, що отримують доступ к таблицям через ODBC, можуть бути створені всього лише декількома натисненнями кнопки миші з використанням мастерів AppWizard та ClassWizard. Існує декілька класів MFS, які підтримують доступ до баз даних і наборам записів.

Класи ODBC в MFS.

Найголовніші класи, що надаються MFS для підтримки застосувань ODBC це класи CDatabase та CRecordset. Клас CDatabase представляє зєднання з джерелом даних. Його змінна m_hdbc представляє дескриптор зднання ODBC. Функції Open та Close можна використовувати для установки або закриття зєднання з джерелом даних. Інші функції використовуються для установки або отримання параметрів зєднання. До таких функцій належать: GetConnect(повертає рядок зєднання ODBC), IsOpen, GetDatabaseName, CanUpdate, CanTransact, InWaitForDataSource, SetLoginTimeout та SetSynchronousMode. По замовченню для доступу до джерела даних клас CDatabase використовує асинхронний режим. Виконувана асинхронна дія може бути перервана викликом функції Cancel.

Обробка транзанкцій підтримується функціями BeginTrans та Rollback.

Клас CDatabase надає також дві перекриваємі функції. Функція OnSetOptions використовується для установки стандартних опцій зєднання. Функція OnWaitForDataSource викликається системою для повідомлення про час обробки при виконанні довгої операції.

Функцію ExecuteSQL можна використовувати для безпосереднього виконання оператора SQL. Цей оператор не використовується разом з операторами SQL, що повертають записи даних.

Клас CRecordset інкапсулює функціональні можливості оператора ODBC SQL і набору рядків, що повертаються оператором. Змінні-члени цього класу ідентифікують дескриптор оператора ODBC, число полів і параметрів в наборі даних, обєкт CDatabase, за допомогою якого набір записів підключен до джерела даних, і два рядки, що відповідають умовам WHERE та ORDER BY.

Двома основними типами наборів записів є динамічні і статичні набори. Тип набору записів вказується при виклику функції CRecordset:Open. Статичні набори представляють статичний варіант представлення даних. Це найбільш зручно для таких задач, як створення звіту. Динамічні набори представляють динамічний варіант представлення даних, що відображає зміни,виконані іншими користувачами або за допомогою інших наборів записів застосування.

Коли набір записів відкривається викликом функції Open, відбувається доступ до таблиці і запит, що представляється наьором записів, виконується. Набір записів і повязаний з ним дескриптор можуть бути закриті викликом функції Close.

Атрибути набору записів можна отримати через виклик функцій CanAppend, CanRestart, CanScroll, CanTransact, CanUpdate, GetRecordCount, GetTableName, GetSQL, IsOpen, IsEOF, IsBOF та IsDeleted.

Переміщення по набору записів можна отримати за допомогою функцій Move, MoveFirst, MoveLast, MoveNext та MovePrev.

Дії з набором записів можуть відбуватися викликом функцій Addnew, Delete, Edit або Update.

Обєкт типу CRecordset ніколи не використовується безпосередньо. Необхідно отримати клас, похідний від CRecordset, і додати змінні, що відповідають оплям таблиці, яку представляють набір записів. Потім треба перекрити функцію DoFieldExchange набору записів; ця функція за допомогою функцій обміну полями записів RFX_(Record Field Exchange) повинна сприяти обміну даних між змінними класу та полями в базі даних. Ці функції за синтаксисом аналогічні функціям обмуну даними діалогу (dialog data exchange DDX_).

 

 

 

 

 

Функції RFX_

Імя функціїТип поляТип SQL ODBCFX_BinaryCByteArraySQL_BINARY,

SQL_LONGVARBINARY,

SQL_VARBINARYRFX_BoolBOOLSQL_BITRFX_ByteBYTESQL_TINYINTRFX_DateCTimeSQL_DATE, SQL_TIME, SQL_TIMESTAMPRFX_DoubledoubleSQL_DOUBLERFX_IntintSQL_SMALLINTRFX_LongLONGSQL_INTEGERRFX_LongBinaryCLongBinarySQL_LONGVARCHARRFX_SinglefloatSQL_REALRFX_TextCstringSQL_CHAR, SQL_DECIMAL,

SQL_LONGVARCHAR, SQL_NUMERIC,

SQL_VARCHAR Обмін полями підтримується за допомогою класу CfieldExchange. Обєкт цього класу містить інформацію про поля, обмін якими повинен відбуватися при виклику функції DoFieldExchange набору записів.

Клас CRecordView це клас перегляду, похідний від CformView, розробленого спеціально для відображення в формах записів баз даних. Обєкти типу CRecordView використовують функції обміну даними діалогу (DDX) та обміна полями записів (RFX) для підтримки переміщення даних між формою і джерелом даних. Обєкти, похідні від CRecordView використовуються разом з обєктами, похідними від CRecordset.

Операції ODBC використовують клас CDBException для повідомлення про помилки шляхом механізму MFC-виключень.

 

Створення структури застосування ODBC за допомогою AppWizard.

Перш ніж MFS-застосування ODBC буде створено за допомогою AppWizard, необхідно ідентифікувати джерело даних, яким буде оперувати застосування. Джерело даних повинно бути ідентифіковано і інстальовано за допомогою програми установки ODBC.

Нехай джерелом даних буде база даних Microsoft Access. Для доступу до цього файлу потрібен драйвер Microsoft Access Driver.

База даних Student складається з 3 таблиць, що містять інформацію про студента, предмети та оцінки студента з цих предметів. В базі даних Access також створено запити, які оперують з даними бази.

Щоб створити структуру застосування ODBC треба запустити майстер AppWizard. Нехай проект буде мати назву - MFSDB.

Проекти, створені таким чином, можуть бути однодокументними, багатодокументними або діалоговими застосуваннями. Однодокументне застосування може представляти користувачу в будь-який момент лише один файл. Найкращим прикладом такого застосування є текстовий редактор Notepad в Windows. Багатодокументне застосування може одночасно представляти декілька документів, кожний у своєму вікні. Більшість текстових редакторів, таких як Microsoft Word, є багатодокументними застосуваннями. Інтерфейс користувача діалогового застосування являє собою одне діалогове вікно. Такі застосування використовуються, якщо взаємодію з користувачем можна провести в одному шаблоні діалогового вікна. Прикладом діалогового застосування є Таблиця символів (Character Map) Windows.

На першому кроці вказується, що проект буде однодокументним. На другому кроці вказуються опції бази даних, яку буде використовувати дане застосування. В якості джерела даних встановлюється Microsoft Access. Можна також вказати тип набору записів. Статичний набір записів (Snapshot) представляє статичний варіант проедставлення даних. Динамічний нібір записів (Dynaset) перехоплює лише індекс даних, таким чином, ці набори можуть відображати зміни, що виконані в записах після створення набору записів (але не додавання чи видалення яких-небудь записів). Набір записів у вигляді таблиці допускає більш конкретне маніпулювання таблицями в реляційній базі даних. В той час як статичні набори представляють більш безпечний вибір, динамічні набори забезпечують переваги в плані продуктивності.

При створенні проекту майстер AppWizaRD створює такі класи:

 

Новий клас CMFSDB є похідним від CRecordset. При обявленні цього класу можна побачити, що майстер AppWizard не тільки створив клас, але й додав змінні-члени, що відображають поля вказаної таблиці бази даних. Ці змінні також відображаються в файлі реалізації класу, в конструкторі, а також в функції DoFieldExchange. Остання викликається MFS для обміну даними між змінними набору записів і відповідними стовпцями в таблиці бази даних.

Такий створений проект представляє собою пусте діалогове вікно. Для його зміни треба додати елементи керування і скористатися майстером ClassWizard для додавання відповідних змінних-членів класів.

До діалогового вікна можна додати статичні елементи керування та елементи редагування, які будуть відображати необхідну інформацію, вибіка якої буде здійснюватися запитом:

SELECT DISTINCT student.Name, subject.Subject

FROM (Mark INNER JOIN student ON Mark.Name = student.Name) INNER JOIN subject ON Mark.Subject = subject.Subject

WHERE (((Mark.Mark)<61));

Вибрати всіх студентів, що мають академзаборгованості.

Даний запит можна реалізувати безпосередньо в середовищі Visual C++ за допомогою функції CRecordset::GetDefaultSQL. ЇЇ змінна m_strFilter відповідає умові SQL WHERE.

Cstring CMFSDBSet::GetDefaultSQL()

{

m_strFilter=_T(“[Mark].[Mark]<61”);

return _T(“[Mark],[student]”);

}

 

Кінцевий вигляд застосування:

 

 

 

 

 

 

 

 

 

 

 

За допомогою Component Galery до прое

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

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