|
|
|||||||||||||||||||||||||||||
|
Подключение таблиц 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". Список атрибутов - это пары параметр=значение, разделенные символами возврата каретки. Описываемый драйвер поддерживает следующие атрибуты соединения:
Другие атрибуты (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;" Ссылки по теме
|
|