Реферат по предмету "Программирование"


Простые ODBC классы без использования MFC

Простые ODBC классы без использования MFC

Мне пришлось написать довольно много приложений
связанных с базами данных. Большинство из них было небольшими и использовали
MFC класс CRecordset. Зависимость от MFC меня не всегда устраивала и тогда я
засел за создание собственного класса. Таким образом появился набор, состоящий
из нескольких классов, обеспечивающий необходимые возможности для работы с ODBC
драйвером.

На самом деле эти классы не претендуют на что-то
"совершенное" и "мощное", однако они могут очень даже
пригодиться для тех кто захочет работать с драйвером ODBC напрямую через API
функции.

В файлах ODBC.h и ODBC.cpp содержится три класса
CODBCCnx, CODBCQuery и CODBCFatQuery. Основным из них является CODBCCnx,
который коннектится к DBMS, а так же осуществляет все необходимые действия по
обработке запросов. CODBCQuery и CODBCFatQuery являются зарезервированными, и я
планирую с их помощью расширить возможности основного класса.
Класс CODBCCnx

CODBCCnx содержит три функции Connect(), Disconnect()
и IsOk(). Функция Connect() позволяет связаться с драйвером DSN или используя
сетевое имя компьютера.

//связываемся с DBMS через DSN, "foodsn"

CODBCCnx dsn();

dsn.Connect("foodsn","username","password");

//Замечание: CODBCCnx
dsn("foodsn",username","password"); идентично предыдущей строке

//проверяем успешность соединения

if(!dsn.IsOk()){

//успешное соединение с базой

}

else{

//ошибка при соединении

}

//другой способ осуществления связи с базой данны,
используя сетевое имя компьютера

CODBCCnx
name("SQL
Server","CompName","username","password");

//опять проверяем успешность соединения

if(!name.IsOk()){

//успешное соединение с базой

}

else{

//ошибка при соединении

}

Итак, мы соединились с базой данных, теперь давайте
попробуем завершить сеанс связи. Для этого нам пригодится функция Disconnect().
В параметрах этой функции можно задавать различные параметры. Например, если
транзакции находятся в активном состоянии, то с помощь этих параметров можно
вернуть их в исходное состояние, либо подождать их завершения. Если вызвать
функцию Disconnect, без параметров, то все транзакции вернутся в исходное
состояние.

//завершаем сеанс связи (dsn)

dsn.Disconnect(); //возвращаем незавершённые транзакции
в предыдущее состояние

//Замечание: dsn.Disconnect(SQL_ROLLBACK) тоже самое,
что и предыдущая строка

//завершаем сеанс связи с базой "name"

name.Disconnect(SQL_COMMIT); //завершаем все
незавершённые транзакции

Класс CODBCQuery

Итак, мы рассмотрели основные действия для общения с
базой данных. Но есть ещё один момент. Не полохо было бы работать с объектом,
созданным ранее, через указатели, то есть сделать его доступным из других
классов. Для этого был создан класс CODBCQuery. CODBCQuery не может использоваться
как самостоятельный объект, он постоянно привязан к основному классу:

//Устанавливаем соединение, используя dsn

CODBCCnx *pDsn = new CODBCCnx("foodsn",
"username", "password");

CODBCQuery qry1,
qry2;

if(!pDsn->IsOk())

{

//успешный коннект!! теперь дадим в доступ данный
сеанс связи :)

pDsn->Connect(qry1.h_qstmt);

pDsn->Connect(qry2.h_qstmt);

}

else{

//ошибка

}

//так же эту процедуру можно совешнить за один шаг.

CODBCQuery qry(new
CODBCCnx("foodsn", "username", "password"),
true);

//либо мы можем брать pDsn и передавать его в связку
новых объектов

CODBCQuery
qry2(pDsn), qry3(pDsn,false);

//либо можно заставить класс CODBCQuery самостоятельно
коннектиться

CODBCQuery
qry4("SQL Server", "CompName", "username",
"password");

//используя DSN

CODBCQuery qry5(NULL,
"foodsn", "username", "password");

Заключительная заметка: существует глобальная функция
SQLSuccess(). Если передать в неё переменную SQLRETURN, то функция вернёт не
нулевое значение, если в этой переменной указать значение SQL_SUCCESS или
SQL_SUCCESS_WITH_INFO. Иногда возвращаемая информация бывает очень даже
полезной.

В дополнение

В архиве содержатся два файла strutil.h и strutil.cpp.
Это очень простые функции имеющие тип char*. Меня раздражает постоянная
необходимость по выделению памяти для strcpy, и т.д... Поэтому мне больше
подходят эти две функции взамен стандартных. Их названия начинаются с jkl_str.
Надеюсь, они Вам понравятся :).
Список литературы

Для подготовки данной работы были использованы
материалы с сайта http://www.realcoding.net/


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.