ENG GER GER pl
PCproxy mail RSS




Регистрация | Вход

Меню сайта

Форма входа

Последние новости

Наши друзья

Наш опрос
Вы часто бываете на ITsecure.org.ua?
Всего ответов: 453

Наши друзья



Главная » Статьи » СУБД » InterBase/Firebird |

Статьи, посвященные СУБД Caché DB2 FoxPro
Informix InterBase/Firebird Microsoft SQL Server MySQL
Oracle Postgres (PostgreSQL) Sybase ЛИНТЕР
MS Access



Руководство по работе с БД Firebird с использованием библиотеки ADO .Net 2.0 (1)

Предисловие

В данном обзоре будет описан один из способов работы с базой данных Firebird в среде .Net при помощи управляемого Ole Db провайдера. Несомненным преимуществом сервера баз данных Firebird является его бесплатность в сравнении с существующими, не очень дешевыми аналогами (прежде всего MS SQL Server и ORACLE).

Firebird можно использовать для систем практически любого уровня, начиная от однопользовательских настольных приложений со встроенной базой данных (Embed Database), до клиент-серверных приложений уровня корпорации.

Средства и технологии, используемые в статье:

  • ADO .Net 2.0
  • Data Protection API (DAPI)
  • Visual Studio 2005 Professional
  • Firebird SQL Server 2.0
  • IBProvider v.3 и IBProvider v.2

Что такое OLE DB Provider?

Для доступа к базам данных в ADO (а теперь эта возможность есть и в ADO.Net) используются OLE DB провайдеры. Ole Db Provider представляет собой драйвер для доступа к базе данных при помощи OLE DB интерфейсов. Для взаимодействия с OLE DB провайдером в .Net реализовано пространство имен System.Data.OleDb.

При работе с Firebird я использую IBProvider (www.ibprovider.com) и в своем повествовании буду опираться, прежде всего, на его функциональность. Разработчики IBProvider поддерживают три коммерческих версии драйвера. Так же есть бесплатная. Для написания примеров применялся IBProvider третьей версии и только для примера управляющих ODBC последовательностей использовался IBProvider v2.

Список основных различий в версиях IBProvider:

Возможности IBProvider Free IBProvider v1/IBProvider v2 IBProvider v3
Поддержка всей линейки серверов Interbase, Yaffil, Firebird, включая FB2 да да да
Возможность работы с ADO и соответственно с Microsoft Office, VBA, VBScript, Java Script и др. да да да
Отсутствие ограничений на размер получаемых данных да да да
Поддержка ADO.Net нет да да
Возможность работы в качестве MS SQL Linked Server нет да да
Работа с метаданными нет да да
Поддержка обновляемых множеств нет нет/да пока нет
Поддержка распределенных транзакций нет да да
Вложенные транзакции нет нет да
Поддержка управляющих последовательностей ODBC для SQL запросов (используется в Crystal Reports, MS SQL Server, различные OLAP и др. инструменты) нет да пока нет
Поддержка DDL запросов да, но без поддержки SQL парсером провайдера да да
Тип закладок 4 байта 4 байта/8 байт 8 байт
Поддержка Client Cursor Engine нет да да
Уведомления о завершении транзакции нет нет да
Предоставление расширенной информации о сервере (версия, тип сервера, размер страницы). нет да да
Возможность задавать используемую клиентскую библиотеку (gds32.dll или fbclient.dll) нет нет да
Поддержка изменений в DML (Data Model Language) для Firebird 2 нет нет да
Новые свойства и алгоритмы Firebird 2 (возможность узнать дату создания базы и т.п.) нет нет да

Наиболее современным решением является IBProvider третьей версии. В его основе лежит абсолютно новое ядро и в нем реализованы технологии управления данными, которые явились результатом 5-тилетних исследований в данной области, а так же вобрали в себя опыт разработки крупных программных проектов и библиотек доступа к данным. На момент написания статьи в третьей версии не была реализована технология обновляемых множеств, а так же не поддерживались управляющие последовательности ODBC. Но, насколько мне известно, поддержка ODBC Escape Sequences уже планируется разработчиками в ближайших версиях провайдера.

Методы подключения к базе данных

Параметры строки подключения

Для использования Ole Db провайдера необходимо подключить соответствующее пространство имен к нашему проекту:

using System.Data.OleDb;

Управление подключением к Ole Db источникам данных осуществляется с помощью класса OleDbConnection. Самый простой способ подключения к базе данных – прямое указание строки подключения в конструкторе этого класса:

OleDbConnection con = new OleDbConnection(connectionString); 
con.Open();
con.Close();

Для формирования строки подключения в Net 2.0 появился класс OleDbConnectionStringBuilder:

OleDbConnectionStringBuilder cb = new OleDbConnectionStringBuilder();
cb.Provider = "LCPI.IBProvider";
cb.Add("Location",@"localhost:d:\Program Files\Firebird\examples\EMPLOYEE.FDB");
cb.Add("User ID", "sysdba");
cb.Add("Password", "masterkey");
cb.Add("ctype", "win1251");
Console.WriteLine(cb.ToString())

Существует определенный набор свойств инициализации IBProvider-a, который необходимо установить перед выполнением соединения с БД:

Обязательные свойства инициализации (параметры подключения) IBProvider:

Свойство Описание
Location Путь к базе данных на сервере.
Provider Имя Ole Db провайдера
User ID Имя пользователя базы данных
Password Пароль пользователя
Ctype Кодировка определяет, символы какого национального алфавита будут использоваться. Для русского и английского алфавита можно использовать кодировку WIN1251

Некоторые необязательные свойства инициализации IBProvider:

Свойство Описание
Data Source Данное свойство используется для задания user friendly имени для базы данных, например "Employee DB". Если свойство Loсation не определено, то предполагается, что в Data Source указано расположение базы данных.
db_client_type Тип клиента сервера базы данных. Есть только в IBProvider v3.
db_client_library DLL с клиентом сервера
auto_commit Режим автоматического подтверждения транзакций. Для его включения в строке подключения необходимо указать “auto commit =true”.
role Роль пользователя

Более подробно о свойствах инициализации IBProvider-а можно прочитать здесь

СОВЕТ. Всегда включайте в параметр Location имя сервера базы данных. Это позволит обеспечить совместимость со всем версиями Firebird
Способы хранения строк подключения
В реальных приложениях никто не прописывает строки подключения к базе данных в коде. Гораздо эффективнее использовать для этой цели либо настройки приложения (технология Settings), либо отдельный файл подключения.

Для хранения параметров подключения в Windows существует специальный тип файлов Microsoft Data Link – это файл с расширением udl. С этим расширением ассоциирован универсальный редактор подключений. IBProvider поддерживает свои собственные табы, которые предоставляют удобный интерфейс для формирования параметров соединения. Для того чтобы использовать udl файл в своем приложении, выполните следующие шаги:

  • Создайте пустой файл с расширением .udl
  • Откройте файл (Enter), появится связанный с данным расширением диалог для настройки подключения:
  • В списке OleDb провайдеров выберете IBProvider v3:

datalink1.gif

  • Задайте параметры подключения по аналогии с рисунком и нажмите кнопку «Проверить подключение»:

datalink2.gif

  • На вкладке дополнительно вы можете задать расширенные свойства подключения:

datalink3.gif

  • Нажмите «Ок» для записи информации о подключении в файл

Теперь для того, чтобы использовать подключение, описанное udl файлом, достаточно явно или через OleDbConnectionStringBuilder задать свойство File Name

OleDbConnectionStringBuilder cb = new OleDbConnectionStringBuilder();
cb.FileName = AppDomain.CurrentDomain.BaseDirectory + @"\employee.udl";
OleDbConnection con = new OleDbConnection(cb.ToString());
con.Open();

Второй способ хранения строки подключения – это поместить её в конфигурационный файл приложения:

В свойствах проекта выберите вкладку Settings и создайте новое свойство с именем ConnectionString и типом (Connection string):

datalinkIDE_CreateSetting.gif

При редактировании свойства запустится встроенный в VS 2005 редактор строки подключения:

datalinkIDE.gif



ПРИМЕЧАНИЕ. Если нажать на кнопку “Data Links”, то появится уже знакомый нам диалог конфигурации Microsoft Data Link

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

Properties.Settings s = new Properties.Settings();
//чтение свойства с именем ConnectionString
Console.WriteLine(s.ConnectionString);

Для облегчения написания примеров был создан класс ConnectionProvider, который инкапсулирует в себе все, описанные методы подключения.



Другие материалы по теме
Категория: InterBase/Firebird | Добавил: admin (05.05.2008)
Просмотров: 2463 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Реклама на сайте

Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Наши друзья

Счетчики
  • Каталог Луганских сайтов
  • МЕТА - Украина. Рейтинг сайтов
  • Rambler's Top100
Ваш IP: 216.73.216.210

При полном или частичном копировании материалов с сайта, ссылка на ITsecure.org.ua обязательна!
ITsecure.org.ua ©2008-2026