Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 21 сен 2020, 09:31

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: 30 июн 2020, 08:53 
Не в сети

Зарегистрирован: 28 июл 2012, 18:07
Сообщений: 28
Добрый день.

На всех версиях EhLib 9.5 (вплоть до 9.5.20) в EhLibADO при указании более одного значения в фильтре (фильтр локальный) происходит ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом".

Как воспроизвести:
1. Запускаем пример Demos\DBGridEh.SortNFilter.ADOQuery\Project1.dpr
2. Нажимаем на кнопку "Filter is on Server", после чего надпись на ней изменяется на "Filter is on Client"
3. В сетке в стоке фильтра в поле "OrderNo" вводим "in (12,27)" (без двойных кавычек) и нажимаем Enter
4. Получаем вышеописанную ошибку
5. Тоже самое происходит в любом другом поле при указании или выборе более одного значения для фильтрации

На версии EhLib 9.4.022 всё работало.
Исправьте, пожалуйста.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 июн 2020, 15:44 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1123
Добрый день.

Ошибку исправим в следующей сборке.
Спасибо за информацию.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 июл 2020, 08:05 
Не в сети

Зарегистрирован: 28 июл 2012, 18:07
Сообщений: 28
Добрый день.

Спасибо, работает.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 24 июл 2020, 11:29 
Не в сети

Зарегистрирован: 28 июл 2012, 18:07
Сообщений: 28
Рано обрадовался :(
Всё замечательно работает, но только для TADOQuery. Стоит только его заменить на TADODataSet, так выскакивает та же самая ошибка.
Решается добавлением в секцию initialization EhLibADO следующей строки:
RegisterDatasetFeaturesEh(TADOSQLDatasetFeaturesEh, TADODataSet);
Исправьте, пожалуйста, в следующей сборке.
Заранее, спасибо!

p.s. для TADOStoredProc и TADOTable та же картина


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 июл 2020, 15:27 
Не в сети

Зарегистрирован: 28 июл 2012, 18:07
Сообщений: 28
Ну, и чтобы, как говориться, два раза не вставать, поправьте, пожалуйста, давний баг со смешанным фильтром в EhLibADO (т.е. множественным и одинарным или множественным и множественным в разных полях).

Как воспроизвести:
1. Запускаем пример Demos\DBGridEh.SortNFilter.ADOQuery\Project1.dpr
2. Нажимаем на кнопку "Filter is on Server", после чего надпись на ней изменяется на "Filter is on Client"
3. В сетке в стоке фильтра в поле "CustNo" вводим "=9" (без двойных кавычек) и нажимаем Enter
4. Всё отлично фильтруется
5. В сетке в стоке фильтра в поле "OrderNo" вводим "in(209,7)" (без двойных кавычек) и нажимаем Enter
6. Получаем вышеописанную ошибку

Это происходит из-за особенностей фильтрации набора данных в ADO, который наглядно описан здесь.
Вот выдержка из вышеуказанной статьи:
* Приоритет между AND и OR не существует. Предложения могут быть сгруппированы в круглые скобки. Однако нельзя сгруппировать предложения, соединенные OR, а затем объединить группу с другим предложением с оператором AND, как в следующем фрагменте кода:
(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'
* Вместо этого этот фильтр следует создать так:
(LastName = 'Smith' AND FirstName = 'John') OR (LastName = 'Jones' AND FirstName = 'John')

Т.к. баг давний (точнее изначальный), то исправьте, пожалуйста, сначала баг с TADODataSet, описанный постом выше, а потом, если будет время, то и этот.
Заранее, спасибо!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 авг 2020, 11:53 
Не в сети

Зарегистрирован: 28 июл 2012, 18:07
Сообщений: 28
Версия 9.5.024 - воз поныне там ...
Исправьте, хотя бы, множественную фильтрацию в TADODataSet, пожалуйста!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 авг 2020, 13:26 
Не в сети

Зарегистрирован: 28 июл 2012, 18:07
Сообщений: 28
Большое спасибо!
В версии 9.5.026 баг с множественной фильтрацией в одной колонке для TADODataSet, TADOTable и TADOStoredProc исправлен!
Остался баг со смешанной фильтрацией, но, как я и писал выше, он древний. Если(когда) руки дойдут, пожалуйста, сообщите в данной ветке.
Заранее, спасибо!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB