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

Откуда:
Сообщений: 103
Доброго времени суток!
Шикарный ODBC драйвер позволяет подключить средствами Linked Servers, любые базы MySQL. Но есть в мускуле такой формат - enum. (например "приоритет", который состоит из определённых значений - "важно", "так себе", "фигня")
И половину дня я возился с провайдером MSDASQL, но ни в какую SQL manager не хочет обрабатывать запросы с полем enum.
пишет следующее:
Msg 7347, Level 16, State 1, Line 7
Поставщик OLE DB "MSDASQL" для связанного сервера "ХХХ" вернул для столбца "[MSDASQL].priority" данные, по размеру не соответствующие ожидаемым данным. Максимально ожидаемая длина данных 18, тогда как длина возвращенных данных 12.

Люди добрые, подскажите, где собака порылась?
14 сен 11, 18:09    [11277642]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
В MSSQL нет типа enum.
14 сен 11, 18:15    [11277669]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Agrotaker
Member

Откуда:
Сообщений: 103
в MSSQL нет, в MySQL есть. а зачастую MySQL называют мускулем.
14 сен 11, 18:26    [11277704]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Agrotaker
в MSSQL нет, в MySQL есть.
И как сервер должен работать по вашему с типом, про который он ничего не знает?
14 сен 11, 18:36    [11277743]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Agrotaker
Member

Откуда:
Сообщений: 103
:) за этим и обратился на форум. Может кто-нибудь знает элегантное решение.
14 сен 11, 18:55    [11277799]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Agrotaker
:) за этим и обратился на форум. Может кто-нибудь знает элегантное решение.
Элегантное решение - сконвертировать в любой тип, который понимает MSSQL.
14 сен 11, 19:07    [11277831]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Agrotaker
Member

Откуда:
Сообщений: 103
я пробовал. честно.
CAST в любой varchar/nvarchar/char/text выдает ошибку MSDASQL
CONVERT пишет - Тип t.priority не является определенным системным типом.
15 сен 11, 10:35    [11279387]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Agrotaker
я пробовал. честно.
CAST в любой varchar/nvarchar/char/text выдает ошибку MSDASQL
CONVERT пишет - Тип t.priority не является определенным системным типом.

CAST и CONVERT - это уже не стороне MSSQL. Поэтому и не получается
15 сен 11, 11:14    [11279704]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Agrotaker
Member

Откуда:
Сообщений: 103
т.е. придётся данные из MySQL конвертировать в промежуточную таблицу, а только потом использовать Linked Server?
... мир жесток...
15 сен 11, 11:28    [11279842]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Glory
Member

Откуда:
Сообщений: 104751
Agrotaker
т.е. придётся данные из MySQL конвертировать в промежуточную таблицу, а только потом использовать Linked Server?
... мир жесток...

Ну если вы не можете это сделать в запросе, то придется
15 сен 11, 11:29    [11279850]     Ответить | Цитировать Сообщить модератору
 Re: MySQL ODBC для Linked Server на платформе SQL2008  [new]
Agrotaker
Member

Откуда:
Сообщений: 103
вот так победил:
select TOP(100) * from OPENQUERY(Linked_Server_Name, 'SELECT convert(priority,char(25)) as priority FROM tasks')
15 сен 11, 12:31    [11280473]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить