powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Связанный сервер для Firebird 2.1 x64 в MS SQL
8 сообщений из 8, страница 1 из 1
Связанный сервер для Firebird 2.1 x64 в MS SQL
    #38445568
delphi_begin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Второй день пытаюсь подключить базу Firebird как связанный сервер к MS SQL.

Исходные данные у меня такие:

Win 7 x64
MS SQL SERVER 2008
Firebird 2.1 X64
ODBC DRIVER : X64 версия 2.00.02.153

1) Создал пользовательский интерфейс (в Microsoft ODBC Administrator) с именем FB - подключение к firebird БД успешное.
2) Создал связанный сервер в MS SQL
Поставщик OLE DB Provider for ODBC drivers
Источник данных FB (имя DSN из ODBC подключения)
В свойствах поставщика MDASQL поставил галку "только нулевой уровень" (нарыл это где-то на форуме)
На вкладке безопасность поставил Локальное имя входа - Логин юзера сервера и галку "Олицетворение"

Связанный сервер подключился без ошибок, но при попытке посмотреть таблицы в дереве связанного сервера выскочила такая ошибка
https://www.dropbox.com/s/33m5wxlefo...?к2.JPG

Понимаю, что загвоздка в доступе! Но! логин/пароль к firebird указан в ODBC - соединении.. поэтому у меня ступор)

Помощь нужна, ребята, очень!!
...
Рейтинг: 0 / 0
Связанный сервер для Firebird 2.1 x64 в MS SQL
    #38445727
Filippov Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delphi_begin,

картинка с ошибкой не видна. Пишет "ссылка неверно сформирована"
...
Рейтинг: 0 / 0
Связанный сервер для Firebird 2.1 x64 в MS SQL
    #38445730
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delphi_beginвыскочила такая ошибка https://www.dropbox.com/s/33m5wxlefo...?к2.JPG

Открой для себя волшебную комбинацию клавиш Ctrl-C, а то ломать глаза о твои скриншоты
будут только мазохисты.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Связанный сервер для Firebird 2.1 x64 в MS SQL
    #38446994
delphi_begin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Filippov Dmitry, прошу прощения.

вот рабочая ссылка
https://www.dropbox.com/s/33m5wxlefogpizk/Снимок2.JPG


UPD по инфе. Попробовал написать запрос вида:

Попробовал написать запрос вида: select * from openquery (<имя сервера>,<'запрос SQL'>)

Очень интересная ситуация.

Когда пишу корректный запрос (который на сервере FB выдает результат) - ловлю ошибку

Сообщение 7399, уровень 16, состояние 1, строка 1
Поставщик OLE DB "MSDASQL" для связанного сервера "Q1" сообщил об ошибке. Отказано в доступе.
Сообщение 7350, уровень 16, состояние 2, строка 1
Не удалось получить сведения о столбце от поставщика OLE DB "MSDASQL" для связанного сервера "Q1".


НО!!! Если написать абы что, select * from openquery (Q1,'select * from sdsss')

Тут уже ошибка другая

Поставщик OLE DB "MSDASQL" для связанного сервера "Q1" вернул сообщение "[ODBC Firebird Driver][Firebird]Dynamic SQL Error
SQL error code = -204
Table unknown
SDSD
At line 1, column 16".
Сообщение 7321, уровень 16, состояние 2, строка 1
Ошибка при подготовке запроса "SELECT ID FROM sdsd" к выполнению при помощи поставщика OLE DB "MSDASQL" для связанного сервера "Q1".

Получается, что MS SQL определяет какие таблицы есть, а каких нет.. НО! Есть запрос правильный, то доступ к нему, почему-то, запрещен. Хотя для подключения в DNS у меня SYSDBA...
...
Рейтинг: 0 / 0
Связанный сервер для Firebird 2.1 x64 в MS SQL
    #38447002
delphi_begin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
так уж вышло.. все исправлено
https://www.dropbox.com/s/33m5wxlefogpizk/Снимок2.JPG
...
Рейтинг: 0 / 0
Связанный сервер для Firebird 2.1 x64 в MS SQL
    #38470110
delphi_begin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
delphi_begin,

Проблему с подключением решил. Может кому и пригодиться.

В итоге стоит у меня так:

Win 7 x64
MS SQL 2008 R2
Firebird 2.0 x32

ODBC driver for FB 32 и 64

1) в настройках поставщика MSASQL ставим галочку "Допускать в ходе процесса"
2) создаем связанный сервер с провайдером: OLE DB FOR ODBC Drivers
3) присваиваем любое имя сервера и любое название продукта (только чтобы не было DSN коннекта с таким именем)
4) вписываем такую строку поставщика:
Driver=Firebird/InterBase(r) driver; Dbname=localhost:e:\_db_\dms.gdb; UID=sysdba;
PWD=31332; ROLE=USER_DMS; CHARSET=WIN1251;
client=D:\DB\fb64\fbclient.dll;
5) ок

Чтобы работать с таблицами через обычные sql-запросы в T-SQL, нужно создать представление на необходимую таблицу.

CREATE VIEW <VIEW_NAME>
AS SELECT *
FROM OPENQUERY (<LINKED SERVER NAME>, 'SELECT * FROM <TABLE_NAME IN FB')
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Связанный сервер для Firebird 2.1 x64 в MS SQL
    #40081082
nuBoBap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
delphi_begin, [РЕШЕНИЕ] для получения данных с FIRIBIRD для разных SQL-серверов 1. На SQL-сервере, который будет коннектится к FIREBIRD (SQL1) должен стоять ODBC-драйвер firebird, причем:
  • на 64-битной системе может работать 32 битный драйвер, а может 64 (зависит от приложения и пр).
  • главное это файлик "fbclient.dll" - экспериментируйте и получится
  • скачать драйвер можно отсюда (офицалы)
2. Сделать системный DNS по правилам описанным тут в начале статьи 3.Создать связанный сервер
    [Общие] Имя = любое (например MyServ), но !=имени DNS [Общие] Источник данных = имя DNS [Безопасность] выбрать нижнюю радиобаттн "Устанавливать с использованием следующего контекста безопасности" [Безопасность] Удаленный вход: SYSDBA [Безопасность] С паролем: masterkey .... (пароль по-умолчанию)
Код: sql
1.
2.
3.

select F.*
from	OPENQuery([MyServ], 'select * from users;') as F
-------- Далее для получения данных с FIRIBIRD для других SQL-серверов или c SQL1 но без sa доступа. 5.Создать на SQL-сервере SQL1 БД 6.В созданой БД ([Lib])к нужной (каждой) таблице из FIREBIRD делается view, типа:
Код: sql
1.
2.
3.
4.
5.
6.
7.

 
USE [Lib]
CREATE VIEW [dbo].[users]
AS
select F.*
from	OPENQuery([MyServ], 'select * from users;') as F
7.1 Даем учетке [MyReader] на SQL1 права на чтение вьюх из БД [Lib] 7.2. На всех других SQL-серверах делаем связанный сервер с SQL1 (см. п1) только с правами на чтение вьюх. 8. Всё - все остальные SQL-серверы или пользователь MyReader могут получать данные, при этом не могут менять.
...
Рейтинг: 0 / 0
Связанный сервер для Firebird 2.1 x64 в MS SQL
    #40081084
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пристрелите дЭбила.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Связанный сервер для Firebird 2.1 x64 в MS SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]