Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DBGrid и ADOQuery 
:(
    Опции темы
Janger
  Дата 23.1.2014, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 17.6.2013

Репутация: нет
Всего: 1



В общем, дело такое...
 Форма
На форме находится DBGrid + ADOQuery1 + ADOQuery2 + DataSource + ComboBox
Дело такое.
-
Я использую ADOQuery1, пишу нам SQL-запрос "select * from DEMANDS" 
Потом ConnectionString, и Active=true
Подключаю его к DataSource, а его уже к DBGrid
--(Тут всё работает хорошо, я пишу что бы ясно было о чём идёт речь)
Далее,
Мне надо в DBGrid отобразить поле из другой базы, для этого я и использую ADOQuery2, там пишу SQL-запрос
И делаю через ADOQuery1 Lookup-ное поле.
--(Тут тоже всё работает без проблем)
Теперь проблема:
В ComboBox у меня находятся несколько вариантов, по которым должно фильтроваться Lookup-ное поле..
Но оно не фильтруется :(
Вот код фильтрации:
Код

procedure TDEMANDS.ComboBox2Change(Sender: TObject);
begin
if ComboBox2.ItemIndex=0 then
ADOQuery1.Filtered:=false
else
begin
ADOQuery1.Filtered:=true;
ShowMessage(ADOQuery1.Fields[6].AsString + ' LIKE '+ ComboBox2.Text);
ADOQuery1.Filter:=QuotedStr(ADOQuery1.Fields[6].AsString) + ' LIKE '+ QuotedStr(ComboBox2.Text);
end;
end;

В общем, в чём может быть ошибка, и как с нею бороться?
PM MAIL   Вверх
Агрох
Дата 24.1.2014, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 176
Регистрация: 6.4.2013
Где: Москва

Репутация: 1
Всего: 6



Текст в ComboBox чётко соответствует тому по которому надо искать? Или же использование LIKE обосновано?
Если первое, то достаточно простого =, вместо LIKE.
Если второе, то нужно указать хотя бы так:

Код

QuotedStr(ADOQuery1.Fields[6].AsString) + ' LIKE ''%' + QuotedStr(ComboBox2.Text) + '%'''


Не знаком с использование 
Цитата
 Lookup-ное поле 
, но вся равно выглядит странно. Как будто вы сравниваете не текст из поля с текстом из комбобокса, а просто текст с текстом.
Может всё же должно быть как то так:

Код

'Название_поля_по_которому_идёт_фильтрация' + ' LIKE ''%' + QuotedStr(ComboBox2.Text) + '%'''

--------------------
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
superVad
Дата 25.1.2014, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



Janger, вместо ADOQuery используй ADODataSet в вместо задания строки для Filter обрабатывай строки вручную в событии OnFilterRecord. Там все просто - в это событие передается датасет спозиционриованый на нужной строчке, ты только проверяешь интересное тебе поле и присваиваешь к Accept тру или фолс, т.е. отображать или нет строку.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.