Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/173: Рейтинг темы: голосов - 173, средняя оценка - 4.95
 Аватар для Aeliot
177 / 62 / 3
Регистрация: 17.11.2011
Сообщений: 318

Подружить Access c .fdb (Firebird)

12.01.2012, 14:20. Показов 34581. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть файл с расширением .fdb
Файл создан не мною.
На сколько разобрался, это база данных FireBird.

Как научить аксесс открывать этот файл?
В идеале нужно прилинковать таблицы из этого файла в проект access.

Как я понимаю, это следует делать через ODBC.
Параметры ConnectionStrings я нашёл, но как их подторкнуть?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.01.2012, 14:20
Ответы с готовыми решениями:

Подружить базы данных MS access 2000 с windows 10
Доброго времени суток уважаемые форумчане! Возникла проблема, прошу помощи. Имеется программа для учета товара на складе, приходов,...

Вылетает ошибка при подключении базы с разрешением fdb(firebird 2.5) c++ builder, Компонент IBDatabase
Здравствуйте, вылазиет ошибка при подключении базы, на парах все получается получать, в чем может быть проблема?

Как подружить jboss c firebird
Помогите новичку. Не получается связать jboss 3.2 (который вместе с tomcat) с firebird (драйвер JayBird). Читаю мануалы - только...

13
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
12.01.2012, 17:09
Как вариант...
Скачиваешь ODBC-драйвер . Устанавливаешь.
Далее Внешние данные-->База данных ODBC...ну и далее(сорри за тавтологию) по подсказкам.

Добавлено через 13 минут
+почитайте тут-->
Подключение таблиц Firebird к базе данных MS Access

С выходом стабильной версии 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;"


________________________________________ _____________
информация взята со страницы ssy.mccinet.ru/fb_connect.html
1
 Аватар для Aeliot
177 / 62 / 3
Регистрация: 17.11.2011
Сообщений: 318
12.01.2012, 23:45  [ТС]
--> Agapov_stas
Драйвер скачал и поставил, но правды не добился

При регистрации
таким макаром
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Option Compare Database
Option Explicit
 
Private Sub cmdSetODBC_Click()
    If vbYes <> MsgBox("Зарегистрировать новый источник данных?", vbYesNo + vbQuestion, "Создание DSN") Then Exit Sub
    
    'Dim dbsRegister As Database
    Dim strAttributes As String
    Dim errLoop As Error
 
    ' Build keywords string.
    strAttributes = "DBNAME=localhost:d:\.Programms\Office Access\accdb_ ModemConnect\juicedb.fdb" _
            & vbCr & "DRIVER=IscDbc" _
            & vbCr & "CLIENT=OdbcFb.dll" _
            & vbCr & "Charset=WIN1251" _
            & vbCr & "READONLY=0" _
            & vbCr & "NOWAIT=0" _
            & vbCr & "DIALECT=3" _
            & vbCr & "QUOTED=0"
    
    ' Update Windows Registry.
    On Error GoTo Err_Register
    DBEngine.RegisterDatabase "FirebirdOdbcMy", "IscDbc", True, strAttributes
    On Error GoTo 0
    
    MsgBox "Use regedit.exe to view changes: " & _
            "HKEY_CURRENT_USER\" & _
            "Software\ODBC\ODBC.INI"
    
    Exit Sub
    
Err_Register:
    
    ' Notify user of any errors that result from
    ' the invalid data.
    If DBEngine.Errors.Count > 0 Then
       For Each errLoop In DBEngine.Errors
          MsgBox "Error number: " & errLoop.Number & _
             vbCr & errLoop.Description
       Next errLoop
    End If
    
    Resume Next
End Sub
выдаёт ошибку 3140 - "ODBC - ошибка вызова".

При таком подходе:
Цитата Сообщение от Agapov_stas Посмотреть сообщение
Далее Внешние данные-->База данных ODBC...ну и далее(сорри за тавтологию) по подсказкам.
Access вообще вылетает с ошибкой.
Прикладываю снимки с экрана по шагам.

Может что не так делаю?
Миниатюры
Подружить Access c .fdb (Firebird)   Подружить Access c .fdb (Firebird)   Подружить Access c .fdb (Firebird)  

Подружить Access c .fdb (Firebird)   Подружить Access c .fdb (Firebird)   Подружить Access c .fdb (Firebird)  

Подружить Access c .fdb (Firebird)  
Изображения
 
0
 Аватар для Aeliot
177 / 62 / 3
Регистрация: 17.11.2011
Сообщений: 318
13.01.2012, 13:23  [ТС]
Кто-нибудь помогите.
Очень надо.
Нужно перебрать базу отправленных и неотправленных SMS.
Вручную перебирать его смерти подобно.
Файл от этой проги:
0
 Аватар для Сергей1980
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
13.01.2012, 17:30
Лучший ответ Сообщение было отмечено как решение

Решение

Есть вариант подружить другим методом перегнать таблы при помощи конвертера DataBaseMigration Toolkit. Жрет все. Найдешь
ЗДЕСЬ

Ставишь прогу, таблЭтко там же. После этого источником данных делаешь твою fb базу а импортируешь в чистый аксесовский файл. Жрет все. Я про некоторые форматы баз, которые там можно выбрать вообще даже не слыхал )))
4
 Аватар для Aeliot
177 / 62 / 3
Регистрация: 17.11.2011
Сообщений: 318
14.01.2012, 02:06  [ТС]
:dance3:
Всем наиогромнейшее спасибо.


--> Сергей1980
Отдельное спасибо за утилиту.
Разобрав исходный файл, лучше понял как приконнектиться и как с ней работать.

З.Ы.
Проблема с драйвером решилась установкой более старой версии.
1
lukoml88
09.04.2012, 15:42
Добрый день!
Есть база FDB и есть приложение, работающее с этой базой, в этом приложении можно писать запросы, так вот, можно ли написать какой-нибудь запрос, чтобы шла выгрузка данных из FDB в MDB или хотя бы в DBF???
 Аватар для Aeliot
177 / 62 / 3
Регистрация: 17.11.2011
Сообщений: 318
10.04.2012, 18:10  [ТС]
Цитата Сообщение от lukoml88 Посмотреть сообщение
Добрый день!
Есть база FDB и есть приложение, работающее с этой базой, в этом приложении можно писать запросы, так вот, можно ли написать какой-нибудь запрос, чтобы шла выгрузка данных из FDB в MDB или хотя бы в DBF???
Тут есть несколько вариантов использования.
Но для начала определитесь действительно ли нужна выгрузка? Или нужно просто иметь возможность использовать данные из файла FDB?

Что же касается использовать данные из вашего файла, то можно:
1) прилинковать таблицы из файла .fdb в файл .mdb/.accdb, дальше используйте их как обычные таблицы
2) написать запрос в файле .mdb/.accdb, в свойствах которого прописываете строку подключения к файлу .fdb -- тип запроса может быть любым -- хотите на выборку, хотите на добавление/изменение данных. Далее используете его как обычно.
3) в vba подключаетесь к вашей базе (создаёте ADODB.Connection), получаете из неё набор данных (ADODB.Recordset) и делаете с ним всё, что душе угодно.
0
Alex19502
18.06.2012, 15:45
Сергей1980, Сергей, спасибо! Работает здорово - без заморочек о которых говорят на других форумах. Там слишком много наворочено.

Добавлено через 1 минуту
Цитата Сообщение от Сергей1980 Посмотреть сообщение
Есть вариант подружить другим методом перегнать таблы при помощи конвертера DataBaseMigration Toolkit. Жрет все. Найдешь
ЗДЕСЬ

Ставишь прогу, таблЭтко там же. После этого источником данных делаешь твою fb базу а импортируешь в чистый аксесовский файл. Жрет все. Я про некоторые форматы баз, которые там можно выбрать вообще даже не слыхал )))
Огромное спасибо! Все работает отлично.

Добавлено через 19 часов 0 минут
Сергей, рано я похвалил DataBaseMigration Toolkit - из .mdb в .fdb таблицы не проходят. Что-то делаю не так? Почта Alex_5070@mail.ru
buzulook
21.06.2012, 14:15
Цитата Сообщение от Aeliot Посмотреть сообщение
:dance3:


Проблема с драйвером решилась установкой более старой версии.
А есть у кого работающий комплект программы Аксес, базы fdb и соответствующего драйвера? А то та же фигня - "ODBC - ошибка вызова".
Думаю для своего fdb не могу правильный драйвер найти.
Только так чтобы в 2003 аксе работало
Alex19502
22.06.2012, 17:21
Цитата Сообщение от Alex19502 Посмотреть сообщение
Сергей1980, Сергей, спасибо! Работает здорово - без заморочек о которых говорят на других форумах. Там слишком много наворочено.

Добавлено через 1 минуту


Огромное спасибо! Все работает отлично.

Добавлено через 19 часов 0 минут
Сергей, рано я похвалил DataBaseMigration Toolkit - из .mdb в .fdb таблицы не проходят. Что-то делаю не так? Почта Alex_5070@mail.ru
Сергею - разобрался. Утилита "не любит" таблицы Access с ипользованием кириллицы в наименовании полей.
shamal_d
12.07.2012, 19:43
Привет. Есть база FDB которая лежит в папке сервисной программы поставщика. Занимает 590 Мб. Пробывал подключится к ней при помощи ESF Database Migration выдает ошибку "Connection authorization failure"
Вероятно она как-то защищена, что можно попробывать ?
buzulook
30.07.2012, 11:02
Скиньте примерчик работающий, очень интересно же как оно работать будет!!!!!
shamal_d
27.08.2012, 13:28
Цитата Сообщение от buzulook Посмотреть сообщение
Скиньте примерчик работающий, очень интересно же как оно работать будет!!!!!
Скинуть базу? ))
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.08.2012, 13:28
Помогаю со студенческими работами здесь

Помогите "чайнику" подружить FireBird
Корифеи, помогите подружить FireBird 1.5 и FireBird 2.0 или предложите по-возможности пути решения проблемы. Проблема в следующем. У меня...

"подружить" NetBeans с Firebird
День добрый! У меня такая проблема. Четвертый день не могу &quot;подружить&quot; NetBeans с Firebird. У меня windows 7 x64, Firebird версия 3.0....

Delphi + Access, как их подружить?
Delphi + Access Ребят, скажите какие версии программ нужно устанавливать чтобы они дружили и все работало?

Delphi + Access 2016 (база данных) как подружить?
Не могу прикрепить бд, созданную в Acces 2016 к delphi 10.1 файл на месте, пробовал 2-мя способами. Есть профессионалы? посоветуйте...

Чем БД на Firebird лучше БД на Access?
Есть ли смысл переходить с БД Access на БД Firebird ? Если с программой работает пара пользователей не очень активно, то не критично? Я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru