Форум программистов, компьютерный форум, киберфорум
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. Показов 34447. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru