Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Обновление ТП после сортировки (число прочтений - 1789 )
Vetalion
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 23. Сентября 2008
Обновление ТП после сортировки
02. Октября 2008 :: 08:24
Печать  
Напоролся на какой-то глюк. Если после сортировки в табличном поле вызвать:
ТабличноеПоле.ОбновитьСтроки()
, то пропадают почти все строки. Как с этим бороться?

Использую поставщика данных ODBC. Сортирую через "ПоставщикДанных.Поставщик.УстКлючПорядка()".
  
Наверх
 
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обновление ТП после сортировки
Ответ #1 - 06. Февраля 2009 :: 10:31
Печать  
Поймал аналогичный глюк. Причем проявляется это только при использовании ключа порядка. Опытным путем, с помощью профайлера, выяснено, что это происходит при неуникальном ключе порядка.  Связано это, как я понял, с механизмами сортировки при получении данных из БД - которое производится в два приема (зачем, кстати) ?

  • Получается множество строк содержащее ключ порядка = некоему значению (я так понял это значение ключа в текущей строке до обновления). Далее, по видимому отбирается только одна из множества строк с одинаковым ключом порядка.  Почему ?
  • Получаются строки со значением ключа порядка строго больше и строго меньше некоего значения. С сортировкой.



Баг ли это или фича, я не знаю. Но большая просьба к разработчикам, либо исправить, либо явно описать в документации. версия 1С++ 3.0.1.22
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обновление ТП после сортировки
Ответ #2 - 06. Февраля 2009 :: 10:34
Печать  
mash писал(а) 06. Февраля 2009 :: 10:31:
Опытным путем выяснено, что это происходит при неуникальном ключе порядка.

КП обязан быть уникальным.
Это документированное условие корректной работы ТП с поставщиком ODBC.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Обновление ТП после сортировки
Ответ #3 - 06. Февраля 2009 :: 10:57
Печать  
kms писал(а) 06. Февраля 2009 :: 10:34:
КП обязан быть уникальным.
Это документированное условие корректной работы ТП с поставщиком ODBC.


При этом ТП отлично "сглатывает" неуникальный ключ порядка, нисколько этим не смущаясь и не давая никаких предупреждений. Кроме всего прочего "теряются" строки содержащие неуникальное значение. Понятно, что ответственность должна лежать на пользователе объекта, однако предупредить его об этом было бы нелишне.  Мне так кажется.
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Обновление ТП после сортировки
Ответ #4 - 06. Февраля 2009 :: 11:07
Печать  
mash писал(а) 06. Февраля 2009 :: 10:57:
Понятно, что ответственность должна лежать на пользователе объекта, однако предупредить его об этом было бы нелишне.  Мне так кажется.

Нелишне.
Я предупредил. Подмигивание
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Обновление ТП после сортировки
Ответ #5 - 06. Февраля 2009 :: 13:25
Печать  
mash писал(а) 06. Февраля 2009 :: 10:57:
При этом ТП отлично "сглатывает" неуникальный ключ порядка, нисколько этим не смущаясь и не давая никаких предупреждений
...
однако предупредить его об этом было бы нелишне
зная работу поставщика ODBC заявляю - это невозможно практически
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать