Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 TDBLookupComboboxEh.DropDownBox.ListSourceAutoFilter  [new]
TopCore
Member

Откуда: Mariupol, Ukraine
Сообщений: 825
На форме лежит следующая связка компонентов: TOracleDataSet --> TDataSetDriverEh --> TMemTableEh --> TDataSource --> TDBLookupComboBoxEh.

TDBLookupComboBoxEh установленные свойства: ListSource, ListField, KeyField, DropDownBox.ListSource (= DBLookupComboBoxEh.ListSource), DropDownBox.Columns (добавил две колонка, одна из которых совпадает с DBLookupComboBoxEh.ListField), DropDownBox.ListSourceAutoFilter.

Хочу сделать: когда пользователь вводит числовое значение, то в DBLookupComboBoxEh, то список должен фильтроваться по мере ввода.

Проблема: при вводе первой цифры выводиться ошибка
Debugger Exception Notification
---------------------------
Project raised exception class EConvertError with message ''9%' is not a valid integer value'. Process stopped. Use Step or Run to continue.

Если из связки выкинуть TDataSetDriverEh --> TMemTableEh, то выводиться ошибка
Debugger Exception Notification
---------------------------
Project raised exception class EExpression with message 'Identifier LIKE not allowed here'. Process stopped. Use Step or Run to continue.

Кто с таким сталкивался или кто знает, в чём может быть загвоздка?
Спасибо
6 янв 17, 13:48    [20077383]     Ответить | Цитировать Сообщить модератору
 Re: TDBLookupComboboxEh.DropDownBox.ListSourceAutoFilter  [new]
Gator
Member

Откуда: Москва
Сообщений: 13809
TopCore,

У тебя SELECT кривой. Выведи его на экран и сразу всё поймёшь. (в части where)
6 янв 17, 22:00    [20078364]     Ответить | Цитировать Сообщить модератору
 Re: TDBLookupComboboxEh.DropDownBox.ListSourceAutoFilter  [new]
TopCore
Member

Откуда: Mariupol, Ukraine
Сообщений: 825
Gator, вот запрос. Он кривой для моих целей?
SELECT DISTINCT
	t1.p_id,
	t1.cn,
	t2.last_name || ' ' || t2.first_name || ' ' || t2.father_name AS emp_name
FROM
	table1 t1
	LEFT JOIN t1ble2 t2 ON
		t2.e_id = t1.e_id
WHERE
	t1.p_id IN (
		SELECT DISTINCT
			t3.p_id
		FROM
			table3 t3
		WHERE
			t3.pr_id IN (
				SELECT DISTINCT
					t4.pr_id
				FROM
					table4 t4
				WHERE
					t4.c_id IN (
						SELECT
							t5.c_id
						FROM
							table5 t5
						WHERE
							t5.c_id IN (10, 14, 16, 17, 24, 26, 27, 28)
					)
					AND t4.date_end IS NULL
			)
			AND t3.date_end IS NULL
	)
ORDER BY
	t1.cn
10 янв 17, 10:29    [20087697]     Ответить | Цитировать Сообщить модератору
 Re: TDBLookupComboboxEh.DropDownBox.ListSourceAutoFilter  [new]
goldmi45
Member

Откуда:
Сообщений: 880
TopCore, и где LIKE?
10 янв 17, 11:37    [20088067]     Ответить | Цитировать Сообщить модератору
 Re: TDBLookupComboboxEh.DropDownBox.ListSourceAutoFilter  [new]
Gator
Member

Откуда: Москва
Сообщений: 13809
TopCore,

Представленный тобой запрос на вскидку нормален. Сервером исполняется?

НО!!!

Этот запрос явно не соответствует твоему вопросу!
Где в нём '9%' и LIKE ?
10 янв 17, 11:38    [20088073]     Ответить | Цитировать Сообщить модератору
 Re: TDBLookupComboboxEh.DropDownBox.ListSourceAutoFilter  [new]
TopCore
Member

Откуда: Mariupol, Ukraine
Сообщений: 825
Gator, эти сообщения выводит TDBLookupComboBoxEh, когда начинаю в нём вводить цифру, например, 9. А запрос на сервере отлично выполняется.
10 янв 17, 12:00    [20088212]     Ответить | Цитировать Сообщить модератору
 Re: TDBLookupComboboxEh.DropDownBox.ListSourceAutoFilter  [new]
TopCore
Member

Откуда: Mariupol, Ukraine
Сообщений: 825
В общем покрутили-помутили с товарищем по работе: оказалось, что TDBLookupComboBoxEh'у нужно для фильтрации стринговое поле. Приходится в запросе числовое поле конвертировать с помощью TO_CHAR().
Всем спасибо.
10 янв 17, 12:35    [20088394]     Ответить | Цитировать Сообщить модератору
 Re: TDBLookupComboboxEh.DropDownBox.ListSourceAutoFilter  [new]
Gator
Member

Откуда: Москва
Сообщений: 13809
TopCore,

Врёшь ведь. Или фантазируешь.
В запрос ты передаёшь строку '9%' вместо числа 9

И ещё ищи лишний LIKE в своей софтине.
10 янв 17, 12:48    [20088485]     Ответить | Цитировать Сообщить модератору
 Re: TDBLookupComboboxEh.DropDownBox.ListSourceAutoFilter  [new]
TopCore
Member

Откуда: Mariupol, Ukraine
Сообщений: 825
Gator, да чё мне врать-то) неправильно/непонятно сказал/выразился - это да, это по моей, к сожалению, части)))
Не я в запрос передаю девятку. Девятку я лишь набираю в компоненте DBLookupComboBoxEh, а вот он уже как чёрный ящик делает скрытую работу) и выдаёт мне ошибочки.
В общем прошу прощения за непонятки)
10 янв 17, 21:54    [20091356]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить