MSSQL 2008 Linked server MySQL MyODBC MSDASQL

Asteroidishe
Дата: 16.01.2009 09:33:41
Проблема с выборкой из view которая создана из таблиц прилинкованного MySQL
настройки из отсюда
только по одбц алиасу создан линкованный сервер, без connection string
Имеется view
CREATE VIEW [dbo].[LogMessageLgc]
AS
SELECT     primaryKey, FromNum, ToNum, Text, UDH, Operation, EncodingType, SMSCIP, CreationTime, ErrorCode, MessageID
FROM         TESTDBRISEM...LogMessage AS LogMessage_1

из такой таблички
CREATE TABLE `logmessage` (
  `primaryKey` varchar(38) NOT NULL default '',
  `FromNum` varchar(50) default NULL,
  `ToNum` varchar(50) default NULL,
  `Text` varchar(4000) default NULL,
  `UDH` varchar(4000) default NULL,
  `Operation` varchar(50) default NULL,
  `EncodingType` varchar(50) default NULL,
  `SMSCIP` varchar(50) default NULL,
  `CreationTime` datetime default NULL,
  `ErrorCode` varchar(50) default NULL,
  `MessageID` varchar(50) default NULL,
  PRIMARY KEY  (`primaryKey`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Вот этот код:
SELECT     primaryKey, FromNum, ToNum, Text, UDH, Operation, EncodingType, SMSCIP, CreationTime, ErrorCode, MessageID
FROM         TESTDBRISEM...LogMessage AS LogMessage_1
выполняется без ошибок

А этот:
SELECT  *
  FROM [Mobile].[dbo].[LogMessageLgc]
Выдает "Msg 7356, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "TESTDBRISEM" supplied inconsistent metadata for a column. The column "CreationTime" (compile-time ordinal 9) of object "LogMessage" was reported to have a "DBCOLUMNFLAGS_ISFIXEDLENGTH" of 16 at compile time and 16 at run time.
"
До этого стоял 2005 mssql, я там тоже долго маялся с запуском линкованного мускуля, но в конце-концов добился сносной работы, тут переполз на 2008 и снова палки в колеса лезут... но при настройке на 2005 mssql я не припомню такую ошибку, т.к. результаты ее гугления я бы запомнил %)
Пытался нагуглить ошибку - ничего кроме сервис пака на mssql 2000 не гуглится.
Структура mysql таблиц не менялась, версия myodbc не менялась, скрипт создания линкованного сервера - тоже.
Может я еще что забыл в настройках провайдера?
Помогите побороть.
pkarklin
Дата: 16.01.2009 09:59:37
И какая проблема в явном перечислении полей?!
Asteroidishe
Дата: 16.01.2009 10:02:03
pkarklin
И какая проблема в явном перечислении полей?!

Проблема не в перечислении, а в выобре из вьюшки, из нее и с явным указанием полей не работает.
Glory
Дата: 16.01.2009 10:08:26
Asteroidishe
pkarklin
И какая проблема в явном перечислении полей?!

Проблема не в перечислении, а в выобре из вьюшки, из нее и с явным указанием полей не работает.

У вас точно в представлении указан только столбец CreationTime ? Без всяких преобразований ?
pkarklin
Дата: 16.01.2009 10:16:43
Asteroidishe
Проблема не в перечислении, а в выобре из вьюшки, из нее и с явным указанием полей не работает.


Что будет, если заменить SELECT с four-part names на OPENQUERY?
Asteroidishe
Дата: 16.01.2009 10:28:21
Glory
Asteroidishe
pkarklin
И какая проблема в явном перечислении полей?!

Проблема не в перечислении, а в выобре из вьюшки, из нее и с явным указанием полей не работает.

У вас точно в представлении указан только столбец CreationTime ? Без всяких преобразований ?


Скрипт создания вью я привел, преобразований нет.
Asteroidishe
Дата: 16.01.2009 10:29:04
pkarklin
Asteroidishe
Проблема не в перечислении, а в выобре из вьюшки, из нее и с явным указанием полей не работает.


Что будет, если заменить SELECT с four-part names на OPENQUERY?

О, совсем забыл про опенквери, с ним работает.
Осталось вспомнить почему я отказался от его использования... сейчас протестирую.
Glory
Дата: 16.01.2009 10:32:27
Asteroidishe
Glory
Asteroidishe
pkarklin
И какая проблема в явном перечислении полей?!

Проблема не в перечислении, а в выобре из вьюшки, из нее и с явным указанием полей не работает.

У вас точно в представлении указан только столбец CreationTime ? Без всяких преобразований ?


Скрипт создания вью я привел, преобразований нет.

Ошибка говорит о том, что при компиляции запроса и при его выполнении метаданные о столбце CreationTime отличались. Конкретно отличался признак DBCOLUMNFLAGS_ISFIXEDLENGTH. Такое часто бывает когда вместо столбца присутствует выражение на его основе
Asteroidishe
Дата: 16.01.2009 10:36:15
Так, стоп!
Все вдруг разрешилось очень странным образом.
Зработало и опенквери и four-part names.
Окно селекта в SQL Server Management Studio было привязано к другой базе (master вместо Mobile)
При выборе в комбобоксе нужной базы все магическим образом заработало.
Интересно почему... Ведь в селекте база Mobile указана...
Asteroidishe
Дата: 16.01.2009 10:37:01
Glory
Asteroidishe
Glory
Asteroidishe
pkarklin
И какая проблема в явном перечислении полей?!

Проблема не в перечислении, а в выобре из вьюшки, из нее и с явным указанием полей не работает.

У вас точно в представлении указан только столбец CreationTime ? Без всяких преобразований ?


Скрипт создания вью я привел, преобразований нет.

Ошибка говорит о том, что при компиляции запроса и при его выполнении метаданные о столбце CreationTime отличались. Конкретно отличался признак DBCOLUMNFLAGS_ISFIXEDLENGTH. Такое часто бывает когда вместо столбца присутствует выражение на его основе

Фишка в том что нет такого, и на 2005 работало, да и метод разрешения проблемы у меня получился более чем странным