Здравствуйте,
(TSCRM 3.2, MSSQL Server 2008)
При открытии датасета ds_MPlan.Open() в профайлере отлавливается запрос, который возвращается несколько строк, но ds_MPlan.RecordsCount при этом равен 0.
Если дело не в версии SQL Server, как тогда справиться с этой проблемой?
ApplyDateFilter(ds_MPlan, 'ShowsDate', StartShow.getVarDate(), EndShow.getVarDate());
ApplyDatasetFilter(ds_MPlan, 'ScreenID', ScreenID, true);
ds_MPlan.Open();
ShowInformationDialog(ds_MPlan.RecordsCount);
...
// На SQL Server 2005 работает. И на 2008 работало до какого-то момента.
Нравится
Количество записей в датасете ds_MPlan.PageRecordsCount. Может стоит им пользоваться.
ds_MPlan.RecordsCount шлет еще один запрос типа
select count(*) from (select ...)
А Вы запросы выполняете под одним пользователем?
А вот эти два запроса
1)Который идет на Open
2)Который идет на RecordsCount в середине select count(*) from (...)
они одинаковые?
Да ну, не бывает такого :)
Берем первый запрос на Open. Он ничего не возвращает. Дописываем в начало
select count(*) from (
и в конец
)
Выполняем. Получаем значение отличное от 0. Так у Вас получается?
Я бы еще поверил что какой-то запрос неправильно генерится террасофтом. Но так выходит мегабага в MSSQL.
Сами в это не можем поверить.
Не совсем так. Запрос, посланный на Open, возвращает значения, но если его в MSSQL запустить;
а датасет при этом пустой почему-то.
Связи сервисов в терасофте проверены сто раз.
Один и тот же код на 2005 сервере нормально отрабатывает, а на 2008 вот такое чудо :(
А, так MS честно работает. Это, наверное, компоненты доступа к нему подглючивают.
Разве TS совместим с 2008 MSSQL? Я думал только 2000 и 2005
Добавлю свои комментарии:
Мы тестировали 3.3.0 и 3.3.1 с MS SQL 2008 - проблем не было замечено.
В одном из наших проектов клиент купил MS SQL 2008 и ТС 3.2.1.14 - с январе 2009г. ошибок со стороны MS SQL 2008 не было замечено!
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Может это зависит от конкретной машины? MDAC, допустим, не тот.
"Kat" написал:// На SQL Server 2005 работает. И на 2008 работало до какого-то момента.
Меня смущает последняя строчка... Значит что-то изменилось...
--
www.it-sfera.com.ua
Terrasoft Solution Partner
а посмотреть, какой запрос приходит на сервер в Profiler?
+1
Бывает :) У меня однажды фильтр забыли отключить по-умолчанию... 3 часа рыли где проблема ;)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
"Kat" написал:сервер БД путался
Так это все его происки :)
Со всеми наверное было. Да, когда по ошибке правишь в одном месте , а тестишь в другом на чинаешь верить в потусторонние силы и высший разум :)
"Kat" написал:Мы тестировали 3.3.0 и 3.3.1 с MS SQL 2008 - проблем не было замечено.
MSSQL 2008 поддерживается официально, начиная с версии 3.3.1. Были замечены проблемы при соединении с базой из Vista (64-бита) и Windows Server 2008 (32-бита). Сейчас разбираемся.