Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Связанный сервер MySQL без OPENQUERY  [new]
hulk77
Member

Откуда:
Сообщений: 123
Добрый вечер
Есть SQL Server и база на MySQL
Нужно забирать с MySQL данные, с использованием параметров

Сейчас использую такой подход:

+
DECLARE @CURDATE date, @CURDATEt nvarchar(12)
SET @CURDATE = GETDATE()
SET @CURDATEt = ''''+RTRIM(convert(date,GETDATE(),104))+''''

DECLARE @MYSQLQUERY nvarchar(300)
SET @MYSQLQUERY  = 'select id from vtiger.calls where dateandtime>'+@CURDATEt
SET @MYSQLQUERY  = 'SELECT * FROM OPENQUERY (MYSQL,''' + REPLACE(@MYSQLQUERY, '''', '''''') + ''')'
EXEC(@MYSQLQUERY);


Но приходится объявлять временную таблицу, записывать данные в нее, а импортировать в хранилище уже с этой временной таблицы, и это не совсем удобно

Сегодня нашел эту статью
где сообщают что можно использовать "трех-точетное" обращение с объекту связанного сервера.
Если даже придется делать отдельные связанные сервера для каждой таблицы - не проблема, таблиц с параметрами в запросах мало, остальные и через OPENQUERY оставить можно

Как создать связанный сервер чтобы использовать "трех-точетное" обращение?
Наш ODBC драйвер - MYSQL
База на MySQL - она одна, vtiger
Таблица - например, calls

Буду очень благодарен за крипт через sp_addlinkedserver и пример этого "трех-точечного" обращения
21 июл 16, 23:29    [19439106]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
гугла многа знать
How-To: MySQL as a linked server in Microsoft SQL Server
22 июл 16, 00:20    [19439245]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
aleks2
Guest
hulk77
пример этого "трех-точечного" обращения


select * from MyLinkedServer.Database.Schema.Table

Считаем точки.
22 июл 16, 06:16    [19439442]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
hulk77
Member

Откуда:
Сообщений: 123
Дедушка, спасибо за линк, аналогично искал но в Вашем наборе статей нашел интересный вариант использовать строку с названием таблицы
ODBC:DSN=MySQL_AnalysisBD::Table=vtiger_calls
Создал связанный сервер таким образом:
http://prntscr.com/bw1okt

По совету aleks2 выполняю запрос
select * from MYSQL_ANALYSISBD_vtiger_invoices.vtiger6_prod.information_schema.vtiger_calls

Недопустимое использование схемы или каталога с поставщиком OLE DB "MSDASQL" для связанного сервера "MYSQL_ANALYSISBD_vtiger_invoices". Указано имя, состоящее из четырех частей, однако поставщик не предоставляет интерфейсы, необходимые для доступа к каталогу или схеме.

При запросе
Select * from MYSQL_ANALYSISBD_vtiger_invoices.vtiger6_prod..vtiger_calls

Указан недопустимый каталог или схема для поставщика "MSDASQL" для связанного сервера "MYSQL_ANALYSISBD_vtiger_invoices".

как узнать название этой схемы в MySQL?
22 июл 16, 12:06    [19440602]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Select * from MYSQL_ANALYSISBD_vtiger_invoices...vtiger_calls
?
22 июл 16, 12:20    [19440699]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
hulk77
Member

Откуда:
Сообщений: 123
Maxx
Select * from MYSQL_ANALYSISBD_vtiger_invoices...vtiger_calls
?


Указан недопустимый каталог или схема для поставщика "MSDASQL" для связанного сервера "MYSQL_ANALYSISBD_vtiger_invoices".
22 июл 16, 12:46    [19440935]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
hulk77
Member

Откуда:
Сообщений: 123
через OPENQUERY все гуд:
http://prntscr.com/bw2636
22 июл 16, 12:49    [19440955]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3756
hulk77
Maxx
Select * from MYSQL_ANALYSISBD_vtiger_invoices...vtiger_calls
?


Указан недопустимый каталог или схема для поставщика "MSDASQL" для связанного сервера "MYSQL_ANALYSISBD_vtiger_invoices".


ну так ёпт:

vtiger_invoices.БАЗА.СХЕМА.vtiger_calls
22 июл 16, 13:04    [19441058]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
hulk77,

а можно весь запрос опернувери сюда показать не картинкой ?

Ролг Хупин
ну так ёпт:

vtiger_invoices.БАЗА.СХЕМА.vtiger_calls

ето MySQL там не все так однозначно
22 июл 16, 13:21    [19441196]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
hulk77,

что значит "неудобно"? Неудобно кому и почему?
22 июл 16, 13:36    [19441301]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
hulk77
Member

Откуда:
Сообщений: 123
Maxx
hulk77,

а можно весь запрос опернувери сюда показать не картинкой ?

Ролг Хупин
ну так ёпт:

vtiger_invoices.БАЗА.СХЕМА.vtiger_calls

ето MySQL там не все так однозначно


Вот запрос на OPENQUERY
SELECT * FROM OPENQUERY (MYSQL_ANALYSISBD_vtiger_invoices, 'SELECT * from vtiger_calls limit 10')
22 июл 16, 16:32    [19442797]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
hulk77
Member

Откуда:
Сообщений: 123
Ролг Хупин
hulk77
пропущено...


Указан недопустимый каталог или схема для поставщика "MSDASQL" для связанного сервера "MYSQL_ANALYSISBD_vtiger_invoices".


ну так ёпт:

vtiger_invoices.БАЗА.СХЕМА.vtiger_calls


ну так где вообще в MySQL название схемы посмотреть?)))
В этом и вопрос
С названием базы то все понятно
22 июл 16, 16:33    [19442812]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
aleks2
Guest
hulk77
ну так где вообще в MySQL название схемы посмотреть?)))
В этом и вопрос
С названием базы то все понятно

Для слабовидящих

К сообщению приложен файл. Размер - 50Kb
22 июл 16, 16:47    [19442904]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
hulk77
Member

Откуда:
Сообщений: 123
aleks2
hulk77
ну так где вообще в MySQL название схемы посмотреть?)))
В этом и вопрос
С названием базы то все понятно

Для слабовидящих


Ну почему вы оскорбляете? Вы с оскорблением отвечаете на вопрос который я не задавал
У вас самого запрос выполняется через эти три точки? Пришлите пож пример

Вот моя база
http://prntscr.com/bw5ava
Сервер ANALYSISBD
База vtiger6_prod
Таблица vtiger_calls
Схема не понятно какая там на Mysql, может соответствует названию базы

Как построить запрос через эти три точки в моей ситуации чтобы не использовать OPENQUERY ?

Все эти варианты возвращают ошибки

select * from MYSQL_ANALYSISBD_vtiger_invoices.vtiger6_prod...vtiger_calls
Select * from MYSQL_ANALYSISBD_vtiger_invoices.vtiger6_prod.vtiger6_prod.vtiger_calls
Select * from MYSQL_ANALYSISBD_vtiger_invoices.vtiger6_prod.vtiger_calls
22 июл 16, 17:12    [19443049]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
hulk77
Member

Откуда:
Сообщений: 123
Может схемы нет на самом сервере MySQL?

К сообщению приложен файл. Размер - 25Kb
22 июл 16, 17:18    [19443083]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
Konst_One
Member

Откуда:
Сообщений: 11540
default catalog в настройках линка через ODBC установлен на базу vtiger6_prod ?

тогда так:

select * from MYSQL_ANALYSISBD_vtiger_invoices...vtiger_calls
22 июл 16, 17:25    [19443130]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
Konst_One
Member

Откуда:
Сообщений: 11540
и вот это глянь
http://sparkalyn.com/2008/12/invalid-schema-error/
22 июл 16, 17:29    [19443165]     Ответить | Цитировать Сообщить модератору
 Re: Связанный сервер MySQL без OPENQUERY  [new]
hulk77
Member

Откуда:
Сообщений: 123
Konst_One
и вот это глянь
http://sparkalyn.com/2008/12/invalid-schema-error/


а это сработало! :)
http://prntscr.com/bw5r2n
Я как и автор статьи не сильно понял что значит эта функция в свойствах MSDASQL, но это помогло

Konst_One, Вам Огромное СПАСИБО! :)
Респект
22 июл 16, 17:40    [19443242]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить