(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Подключение таблиц Firebird к базе данных MS Access

Источник: mccinet

С выходом стабильной версии 1.0 Open Source ODBC драйвера от IBPhoenix появилась возможность свободно работать с базами данных сервера Firebird. Для этого достаточно лишь установить драйвер. Всю дальнейшую работу можно совершать непосредственно средствами MS Access.

Создать DSN с помощью MS Access VBA можно с помощью функции RegisterDatabase, специально предназначенной для регистрации нового источника данных:

DBEngine.RegisterDatabase <Имя источника данных>, _
                          <Название ODBC драйвера>, _
                          <Выводить или нет окно диалога драйвера ODBC>, _
                          <Список атрибутов>

Имя источника данных следует задавать с некоторой осторожностью, чтобы случайно не испортить какой-нибудь "чужой" DSN. Таким образом, если Вы захотите установить другие значения параметров соединения, процедуру RegisterDatabase нужно наоборот запустить повторно с тем же именем DSN и эти новые значения просто будут перезаписаны поверх старых.

Теперь немного подробнее о других параметрах. Название ODBC драйвера в нашем случае будет "Firebird/InterBase(r) driver". Список атрибутов - это пары параметр=значение, разделенные символами возврата каретки. Описываемый драйвер поддерживает следующие атрибуты соединения:

  • DRIVER: Всегда IscDbc.
  • DBNAME или DATABASE: Указывать обязательно. Местоположение базы данных (имя сервера и имя файла с полным путем либо псевдоним через двоеточие). Например:

    localhost:C:\DB\DataFile.fdb - локально
    127.0.0.1:C:\DB\DataFile.fdb - локально
    172.17.2.10:/usr/local/data/db.fdb - удаленно на *NIX
    192.168.10.20:D:\FIREBIRD\Data.fdb - удаленно на Windows
    192.168.10.20:MyAlias - удаленно (псевдоним)
    MYSERVER:MyAlias - удаленно (псевдоним)

  • CLIENT: Указывать обязательно. Имя файла клиентской библиотеки. Особенно актуально при использовании встраиваемой (embedded) версии сервера.
  • CHARSET или CHARACTERSET: Указывать желательно. Набор символов по умолчанию.
  • READONLY: По умолчанию (=0) подключается к базе данных для чтения/записи. Можно сделать только для чтения (=1).
  • NOWAIT: По умолчанию (=0), транзакция ждет снятия блокировки, если вдруг на неё наткнется. Можно сделать так, чтобы транзакция в такой ситуации сразу завершалась с ошибкой (=1).
  • DIALECT: Указывать обязательно. SQL-диалект базы данных сервера. 1-й диалект используется для совместимости с сервером InterBase 5-й версии. Для сервера Firebird более типичен 3-й диалект, хотя и там можно создавать базы данных в первом диалекте.
  • QUOTED: Эта опция гарантирует совместимость с базами данных, созданными в диалекте 1 (по умолчанию - включена).
  • SENSITIVE: Эта опция устанавливает свойство SQL_IDENTIFIER_CASE. Значение по умолчанию SQL_IC_UPPER. Можно также установить SQL_IC_SENSITIVE. По традиции, и в InterBase и в Firebird используются заглавные буквы.
  • AUTOQUOTED: Если установить, то драйвер будет пытаться самостоятельно заключать в кавычки идентификаторы, что черевато ошибками. Лучше не испытывать судьбу.
  • FILEDSN: При подключении к серверу, Access использует эти ключи в следующей последовательности: сначала используются атрибуты, указанные в строке подключения, затем отсутствующая информация извлекается из указанного FILEDSN или DSN.
  • SAVEDSN: Если этот параметр находится в строке подключения, то параметры успешного подключения, будут сохранены. Пароль сохраняется в зашифрованном виде.

Другие атрибуты (UID, PWD и ROLE) лучше указывать непосредственно в строке подключения, так как для них характерны частые изменения. В итоге, в качестве строки атрибутов может получиться, например, следующее:

DBNAME=localhost:C:\Work\FBTest.FDB
DRIVER=IscDbc
CLIENT=fbclient.dll
CHARSET=WIN1251
READONLY=0
NOWAIT=0
DIALECT=3
QUOTED=0

Дальше, надо подключить объекты базы данных сервера к Вашему приложению либо с помощью команды DoCmd.TransferDatabase с типом преобразования acLink, либо путем создания нового объекта TableDef:

Set NewTableDef = CurrentDB.CreateTableDef("Имя таблицы в БД MS Access")
NewTableDef.Connect = "Строка подключения"
NewTableDef.SourceTableName = "Имя таблицы или представления на сервере"
CurrentDB.TableDefs.Append NewTableDef

И в конце поможем Access'у определить первичный ключ, если он сам его не распознал, что является нормальным явлением при подключении представлений (VIEW):

CurrentDB.Execute "CREATE UNIQUE INDEX PrimaryKey ON " & _
                  "Имя таблицы в БД MS Access" & "(" & _
                  "Список полей первичного ключа" & ")"

Самое сложное здесь - составить строку подключения. В начале обязательно нужно указать "ODBC;", затем - имя созданного источника данных ("ODBC;DSN=<Имя источника данных>;..."), имя пользователя ("...;UID=<Логин>;...") и пароль ("...;PWD=<Пароль>;...") например:

"ODBC;DSN=Firebird Test;UID=SYSDBA;PWD=masterkey;"

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 13.11.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft 365 Business Basic (corporate)
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft Windows Professional 10, Электронный ключ
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Standard (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Мастерская программиста
Adobe Photoshop: алхимия дизайна
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100