Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2013, 19:28   #1
Ягодка
Пользователь
 
Аватар для Ягодка
 
Регистрация: 11.02.2013
Сообщений: 32
Радость Delphi 7 вывести в DBGrid только те записи, которые соответствуют условию, содержащемуся в StringGrid

Добрый вечер, уважаемые программисты!
Имеется: результат выполнения процедуры, который выводится в StringGrid:
1.png
А также DBGrid, который содержит все данные о поставщиках:
2.jpg
А также имеется кнопка "Получить данные о надёжных поставщиках". При нажатии на эту кнопку в новом, "чистом" DBGrid должны появиться данные только о тех поставщиках, которые в StringGrid выделены зелёным цветом и являются надёжными. Делается это через запрос, но каково условие отбора... Нет идей Ведь ненадёжные поставщики должны отсекаться.
Код:
procedure TForm1.BitBtn127Click(Sender: TObject); {кнопка Получить данные надёжных поставщиков}
begin
ADOQuery24.Active:=False;
ADOQuery24.Close;
ADOQuery24.SQL.Clear;
ADOQuery24.SQL.Add('SELECT * FROM Поставщик');
ADOQuery24.SQL.Add('WHERE [Наименование поставщика]='+ '"'+StringGrid8[2,i]+'"');
ADOQuery24.ExecSQL;
ADOQuery24.Open;
end;
Понятное дело, что код неверный и Дельфи ругается матом "Class does not have a default property" на строчку
Код:
ADOQuery24.SQL.Add('WHERE [Наименование поставщика]='+ '"'+StringGrid8[2,i]+'"');
Но я честно не знаю, как построить запрос и получить нужный результат
Ягодка вне форума Ответить с цитированием
Старый 26.02.2013, 19:48   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, выбирать лучше по коду (похоже, что это уникальный идентификатор).

во-вторых, если записей "надёжных" не очень много, то можно попробовать их все собрать в строке через запятую и использовать в запросе через
Код:
select * from Поставщик 
where КодПоставщика in (тут_коды_надёжных_через_запятую)

кроме того, Вы же как-то определяете - надёжный поставщик или нет? возможно, что это же условие можно применить к условию выборки

ну и последнее. На крайний случай можно использовать ручную фильтрацию датасета (проверяя каждого поставщика на надёжность)...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести значение отдельного поля таблицы в DBText при выборе записи в DBGrid? Kalach БД в Delphi 18 07.02.2013 07:02
Надо вывести список пациентов которые опоздали на прием врача.. в DBGrid apple66 БД в Delphi 7 21.03.2012 03:03
из строки вывести на экран те символы, которые встречаются только по 1 разу Andrey770 Паскаль, Turbo Pascal, PascalABC.NET 4 29.03.2011 19:08
Как вывести значение полей из выделенной записи в DBGrid ? DS75 БД в Delphi 5 30.04.2009 13:40
при выполнении запроса в столбце "Дата сдачи" оставить даты, которые соответствуют введенному месяцу klukva666 Microsoft Office Access 5 10.03.2008 17:52