Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Особенность работы поставщика данных ODBC с Ключем порядка типа DateTime (число прочтений - 1264 )
slider26
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 256
Зарегистрирован: 01. Июня 2006
Особенность работы поставщика данных ODBC с Ключем порядка типа DateTime
18. Марта 2009 :: 16:34
Печать  
Имеем следующую ситуацию:
Таблица, у которой есть уникальное поле типа DateTime (Примером таблицы может служить SQL-лог, формируемый классом от  avgreen http://www.1cpp.ru/forum/YaBB.pl?num=1234869674)
Строим к таблице запрос , устанавливаем его в поставщик данных ТП и указываем ключем порядка наше поле типа DateTime...

Получаем зацикливание верхнего набора строк при прокрутке ТП Печаль

Причина - частичная потеря данных при преобразовании поставщиком DateTime в дату и обратно Печаль

т.е., когда поставщик дополняет запрос условием на ключ порядка, он берёт значение из последней отображаемой строки, которое предыдущим запросом уже преобразовано в "Чистую дату", без указания времени и подставляет значение параметра в запрос в виде DateTime вида "Дата 00:00:00.000" т.е. фактически сбрасывает результат запроса на начало выборки (в том случае, если у нас имеется достаточно записей с одним значением даты (и различным временем), чтобы заполнить один пэйдждаун в ТП)...

Проблема могла бы решаться явной типизацией поля в $Строка, но при этом запрос, который дополнен условием на КП выдаёт ошибку, что не может сконвертировать Varchar в DateTime...

Как это исправить???
PLEASE HELP!

PS: Может стоит придумать новую типизацию в запросе:
$Позиция или $ДатаВремя, которая позволяла бы корректно преобразовывать такое поле в строку и обратно, либо доработать соответствующим образом поставщик данных...

Просьба конвертацию в запросе вида SELECT convert или CAST не предлагать - в таком случае не работает индекс по полю...

Может есть ещё какие либо варианты?
« Последняя редакция: 19. Марта 2009 :: 05:04 - slider26 »  
Наверх
 
IP записан
 
slider26
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 256
Зарегистрирован: 01. Июня 2006
Re: Некорректная работа поставщика данных ODBC с Ключем порядка типа DateTime
Ответ #1 - 19. Марта 2009 :: 04:31
Печать  
Продолжение...

Беру запрос, вызывающий ошибку из профайлера, копирую его в QA. Запускаю - работает...

"Ничего не понимаю..." (С) Колобки, студия "Пилот"
  
Наверх
 
IP записан
 
slider26
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 256
Зарегистрирован: 01. Июня 2006
Re: Некорректная работа поставщика данных ODBC с Ключем порядка типа DateTime
Ответ #2 - 19. Марта 2009 :: 05:00
Печать  
Разобрался! Улыбка
Помогла типизация в строку.
Сразу оговорюсь - база данных у меня внешняя, не 1С.
Подзапрос перестал ругаться, когда в строку соединения я добавил Language=us_english; Улыбка
Вот такая проблемка... Улыбка
« Последняя редакция: 19. Марта 2009 :: 07:32 - slider26 »  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать