Связка ADO и InterBase(FireBird)

Если ты читал вот эту статью, то уже знаешь вступление к новой этой;)

ADO это очень удобная технология. Настраиваеш udl драйвер, цепляешься и вперед. И если у тебя MS SQL сервер БД, то дальше можешь не читать. Всё цепляется безо всяких проблем. В этот раз мне нужно было зацепить InterBase. Тоже ничего сложного, но шагов чуть по больше.

Для начала - C++ Builder 6 имеет специальную вкладку компонент для работы с InterBase/Firebird - InterBase. Все действия сводились к тому, чтобы выложить нужные компоненты - IBDatabase, IBTable и IBTransaction. Связать их между собой в Object Inspector, сделать активными и вывести скажем на DBGrid. Если бы я описывал как подключатся к InterBase с помощью InterBase компонент, то здесь уже можно было поставить большую точку. Но Мы легких путей не ищем. Мы ищем привычные и удобные.

Теперь о том, что есть необходимо. Идём на http://garr.dl.sourceforge.net/sourceforge/firebird/Firebird_ODBC_1.2.0.69-Win32.exe и берем коннектор FireBird Connector/ODBC для Windows. Собственно, коннекторы есть и для других ОС. FireBird это что-то вроде бесплатной альтернативы InterBase. И хотя они имеют одни корни, перекинуть из одной в другую становится все сложнее. Этот коннектор универсален, и работает на InterBase и на FireBird. Кстати, никто не запрещает использовать второй версии коннектор. Он вроде как новее, смотри сам.

Устанавливаем и получаем драйвер доступа до InterBase/FireBird. Идем в Панель управления(Control Panel) -> Администрирование(Administrative tools) -> Источники данных ODBC(Data Sources). Открываем вкладку System DSN и жмем Add(Добавить). Там выбираем наш устанновленный коннектор и жмем ОК.

Если добрался до этого пункта, то дальше все значительно проще. В коннекторе указываем параметры подключения, т.е. название твоего подключения(DSN) - оно выбирается произвольно, хост с БД(причем можно указать на базу расположенную локально), логин/пароль для доступа к БД(тут проявляется специфика работы с БД, нужно указывать пользователя SYSDBA и его пароль). Делаем Test connection и в случае успешного подключения жмем ОК и запускаем C++ Builder. Для большей уверенности мы сделали скриншот своего доступа к базе:

Связка ADO и InterBase

Примечание: Я вообще удивляюсь, как у автора все так просто и складно получается. А у меня вот не получилось. Пишет ошибку - unavaliable database. Что это значит - несуществет базы? Но я разобрался! Путем пробования и перетыкивания(мой любимый способ) я нашел как избавится от этой ошибки. Все очень просто - надо указывать путь к базе как если бы она находилась на другом компьютере в сети. Другими словами, путь оставить, но дописать слева имя компьютера. У меня имя компьютера(я его смотрел в свойствах Мой компьютер, на вкладке Имя компьютера) - Worker, поэтому мой путь выглядит так WORKER:C:\mybase\inter.gdb И все работает просто отлично. Это надо потому, что FireBird это все-таки сервер БД, поэтому к локальным путям он плохо относится.

Теперь есть два способа законнектится к базе. Либо создаем файл с расширением udl. Достаточно простого txt, просто переименовать. Либо прописываем ConnectionString. С первым все просто, жми на udl файле два раза, открывается окно работы с провайдерами. Там выбираем Microsoft OLE DB for ODBC и жмем Next. В списке первого пункта выбираем имя недавно созданного DSN и жмем test connection. Если все удачно, выносим компоненту ADOConnection. В инспекторе объекта, находим ConnectionString и жмем на троеточие. Далее выбираем Use Data Link File, Browse(Обзор), находим вами созданный udl и жмем ОК. Теперь в ADOConnection выбираем булево свойство Connected и ставим true. Если все хорошо то попросят залогинится в базу(ничего не заполняй, просто жми ОК, ибо ты уже залогинен через коннектор), при компиляции программы. При не желании постоянно жать ОК, выбери свойство LoginPromt у ADOConnection, и установи его значение в false. Все, база подцеплена, работать дальше как обычно.

Удачи в освоении;)




Ссылки:

К содержанию

© Copyright 2004-2017 - CMS Made Simple
Сайт работает на CMS Made Simple version 1.4.1

© Все печеньки Break-people.ru принадлежат авторам проекта.

Яндекс цитирования Рейтинг@Mail.ru Яндекс.Метрика