Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil
Шрифт:
Gemini ODBC-драйвер поддерживает все типы данных в каждом из диалектов, включая NUMERIC/DECIMAL, DATE, TIME и TIMESTAMP.
Настройка параметров транзакций
Опции настройки DSN предусматривают задание параметров транзакций использование команд COMMIT/ROLLBACK или COMMIT RETAINING/ROLLBACK RETAINING при завершении транзакции, установку режима "только чтение", установка режима ожидания (WAIT/NO_WAIT) и запрещение выборки старых версий при уровне изоляции READ COMMITTED.
Установка драйвера и настройка источников данных
Дистрибутив драйвера состоит из одного исполнимого файла с именем ibgem_21_desk.exe (для настольной редакции драйвера версии 2.1). Чтобы установить драйвер, необходимо запустить этот файл.
Существует два способа создания соединений в ODBC - с использованием DSN (Data Source Name - имя источника данных) и без DSN (так называемые DSN-less-соединения.
В первом случае все параметры соединения (такие, как имя базы данных, сервер и сетевой протокол) конфигурируются
Примерный вид диалога настройки DSN приведен на рисунке 3 4.
Рис 3.4. Диалог настройки источника данных
В случае использования DSN-less-соединения приложение должно передать все параметры соединения вместе с именем драйвера в строке соединения.
Ниже перечислены все опции настройки источника данных параллельно для настройки DSN и при задании в строке соединения. Параметр Options содержит битовую маску, каждый бит которой соответствует установке некоторого флага в диалоге DSN.
Табл 3.1. Параметры настройки источника данных
Поле диалога настройки DSN | Параметр строки соединения | Значение по умолчанию | Описание |
– -- | Driver | – -- | Имя ODBC-драйвера. Используется только для DSN-less-соединений. Если имя драйвера содержит пробелы, необходимо заключить его в фигурные скобки. Для Gemini ODBC-драйвера нужно задавать так: DRIVER={Gemini InterBase ODBC Driver 2 0); |
Data Source Name | DSN | – -- | Имя источника данных Используется для соединений с применением DSN |
Protocol | Protocol | 1 | Протокол, используемый для соединения. Задается числовым кодом, возможные значения которого таковы: 1 - Local; 2 -TCP; 3 - NetBEUI (Named Pipes); 4-SPX |
Server | Server | " " | Имя серверного компьютера для удаленных протоколов. Пустое имя соответствует локальному серверу |
Database File | Database | – -- | Имя файла базы данных. Обязательный параметр |
Default User Name | UID | " " | Имя пользователя |
Password | PWD | " " | Пароль пользователя. Не рекомендуется задавать пароль в настройках DSN, поскольку он хранится в реестре в открытом виде |
Role | Role | " " | Имя роли SQL, используемое при подключении к базе данных |
Character Set | Charset | " " | Название кодировки пользовательского подключения |
InterBase Version | Version | 6 | Номер версии сервера, в котором была создана база данных |
Dialect | Dialect | 3 | InterBase SQL-диалект |
Soft Commits | 256 (0x100) | Использовать COMMIT RETAINING. Соответствует биту 8 (маска 256) поля Options. Внимание! Установленному биту соответствует "жесткий" COMMIT | |
Close Cursors on Commit | Закрывать курсоры при завершении транзакции. Соответствует | ||
Case- insensitive identifiers | Отключает поддержку идентификаторов, зависящих от регистра в диалекте 3 Соответствует биту 2 (маска 4) поля Options | ||
Report Owners as Schemes | Options | Выдавать имя владельца объектов при описании структуры базы данных. Для большинства приложений приводит к проблемам. Соответствует биту 1 (маска 2) поля Options | |
No Record Versions | Запрещает чтение старых версий записей в уровне изоляции READ COMMITTED Соответствует бит 4 (маска 16) поля Options | ||
No Wait On Locks | Запрещает ожидание транзакции в случае конфликтов обновлений. Соответствует биту 5 (маска 32) поля Options | ||
Read Only | Readonly | 0 | Устанавливает режим обращения "только чтение" к базе данных |
Рассмотрим несколько примеров задания строки соединения из приложения В качестве приложения возьмем скрипт на языке VB Script. Для запуска теста вам необходимо выполнить скрипт с помощью команды cscript имя-файла.vbs.
DSN-less соединение
В этом примере все параметры соединения устанавливаются программно
dim conn
set conn = CreateObject("ADODB.Connection")
conn . open "Dnver= {Gemini InterBase ODBC Driver
2.0);Protocol=2;Server=localhost;Database=z:\borland\InterBase\
examples\employee.gdb;Dialect=3;UID=sysdba;PWD=masterkey"
Соединение с использованием DSN
В этом примере вам необходимо создать источник данных с именем Employee. В программе передаются только имя пользователя и пароль.
dim conn
set conn = CreateOb3ect("ADODB.Connection")
conn.open "DSN=Employee;UID=sysdba;PWD=masterkey"
Вероятные проблемы и способы их решения
Сообщение "Client library cannot be loaded" при попытке установить соединение.
– На компьютере не установлен клиент InterBase/Firebird. Проверьте наличие библиотеки GDS32.DLL в системном каталоге Windows
Ошибка "Optional feature not supported".
– В строке соединения и настройке DSN имя сервера указано дважды, например, в поле Server и в поле Database. При этом на сервер приходит строка соединения следующего вида: Localhost:localhost./path_to_database/db.gdb. Проверьте настройки DSN и строку коннекта
Ошибка "Una\ tillable database" при соединении из службы N1, например US или MS OLAP Sendees.
– Возможная причина - источник данных настроен на использование локального протокола. Локальный протокол InterBase/Firebird не поддерживает соединения из служб Windows NT/2000. Используйте протокол TCP или Named Pipes с пустым именем сервера.
При установке на "чистую" Windows NT 4.0 имя DSN в ODBC Data Source отображается неправильно.
– На компьютере не установлен ODBC Driver Manager версии 3.5 или выше. Установите обновление MDAC, которое можно загрузить с Web-сайта Microsoft.
При записи пустой строки в связанную таблицу Microsoft Access выдается ошибка "You tried to assign tlie NULL variable to the variable that is not a Vanant data type".
– К сожалению, Microsoft Access не допускает хранения пустых строк в связанной таблице. Пустая строка автоматически преобразуются в NULL; если при этом поле таблицы объявлено как NOT NULL, возникает данная ошибка.
Невозможно обновить связанную таблицу в Microsoft Access, содержащую вычисляемые поля.
– Клиентская библиотека InterBase не содержит средств для определения того, какие из полей результата выборки являются обновляемыми. При обновлении любого поля таблицы Microsoft Access выполняет команду обновления всех полей, включая вычисляемые, что приводит к ошибочной ситуации.
Заключение
Если вы применяете приложения, рассчитанные на использование источников данных ODBC, такие, как настольные офисные системы, языки программирования или даже серверы баз данных, использование ODBC, вероятно, будет самым простым и надежным способом интегрировать их с базами данных InterBase/Firebird. Для разработчиков ODBC предоставляет возможность проектировать приложения, способные однообразно работать с InterBase/Firebird наравне с другими серверами СУБД в качестве источника данных и при необходимости легко переносить приложения между разными типами серверов
В этой главе описан драйвер Gemini ODBC, его настройка и использование для доступа к базам данных InterBase. Свежую информацию о драйвере, сообщения о выпуске новых версий вы всегда сможете найти на Web-сайте поддержки данной книги www.InterBase-world.com, а также на сайте Gemini www.ibdatabase.com.
Создание клиентов на Java. InterClient и JDBC
Технология Java является одной из самых бурно развивающихся в мире. Поэтому поддержка Java является необходимым условием существования любого сервера баз данных. Разумеется, и InterBase, и все его клоны поддерживают возможность работы с приложениями на Java.