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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2013, 14:53   #1
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию фильтр несколько условий из Edit1

Здравствуйте ребята, как реализовать такой условия через Delphi , из одного Edit ?
EmployeeID
1
2
3
4
5
6
7
8
9
Цитата:
SELECT *
FROM Orders
WHERE EmployeeID = 3 or EmployeeID = 6
Пользователь хочет что он набирал в Edit1 на пример 3,6 или через точки 3.6 Как это реализовать помогите пожалуйста

Цитата:
procedure TMain.Button1Click(Sender: TObject);
begin
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('SELECT * FROM Orders');
Query.SQL.Add('WHERE EmployeeID LIKE '''+ Edit1.Text+ '%' +'''');
// как здесь продолжать,
Query.Open;
end;
Что EmployeeID отфильтровать из Edit 3,6 или 2.5 главное что передать несколько запись
xxbesoxx вне форума Ответить с цитированием
Старый 07.08.2013, 15:00   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
EmployeeID отфильтровать из Edit 3,6
Код:
...
Query.SQL.Add('WHERE EmployeeID IN ('+ Edit1.Text+ ')');
...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.08.2013, 15:12   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Serge_Bliznykov Огромное спасибо работает
xxbesoxx вне форума Ответить с цитированием
Старый 07.08.2013, 21:43   #4
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
...
Query.SQL.Add('WHERE EmployeeID IN ('+ Edit1.Text+ ')');
...
Прошу прошения, если я буду задавать параметр EmployeeID = :emid потом как правильно написать через Delphi

Цитата:
OrdersQuery.Parameters.ParamByName( 'emid IN').Value (+ Edit1.Text+);
как не работает
xxbesoxx вне форума Ответить с цитированием
Старый 07.08.2013, 22:42   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
OrdersQuery.Parameters.ParamByName( 'emid IN').Value:=Edit1.Text;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.08.2013, 23:11   #6
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
OrdersQuery.Parameters.ParamByName( 'emid IN').Value:=Edit1.Text;
Спасибо за внимание. Но не работает, У Query из свойства SQL я задаю параметр вот так
Код:
SELECT * FROM Orders 
WHERE EmployeeID  =:emid
потом из Delphi как вы говорите так не работает
Код:
    OrdersQuery.Close;
    OrdersQuery.Parameters.ParamByName( 'emid IN').Value:=Edit1.Text;
    OrdersQuery.Open;
Выдает такого ошибка

emid Это имя параметра . А IN где написать что бы работал как запрос без параметра
Изображения
Тип файла: jpg IN.jpg (36.4 Кб, 57 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 07.08.2013, 23:32   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Откуда emid IN, если имя параметра - emid
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.08.2013, 23:55   #8
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Ну да, и за это говорить что параметр 'emid IN' не нашел. так без параметра работает хорошо.

Цитата:
OrdersQuery.Close;
OrdersQuery.SQL.Clear;
OrdersQuery.SQL.Add('SELECT * FROM Orders');
OrdersQuery.SQL.Add('WHERE EmployeeID IN ('+ Edit1.Text+ ')');
OrdersQuery.Open;
Но как это реализовать в параметре. Потому что бывает иногда выходные данных собираем из несколько таблиц, И мне надо что поля 'EmployeeID' был параметр, и отфильтровал данных по несколько условия . 2,4,7 вот так
Пожалуйста помогите ребята

Последний раз редактировалось xxbesoxx; 07.08.2013 в 23:58.
xxbesoxx вне форума Ответить с цитированием
Старый 08.08.2013, 00:04   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Формально так, но то что сработает далеко не уверен, никогда не передавал список значений таким образом. Провайдер может и отфутболить. Возможно вторая строчка и не нужна
Код:
OrdersQuery.SQL.Add('SELECT * FROM Orders WHERE EmployeeID IN (:emid)');
OrdersQuery.Parameters.ParamByName('emid').DataType:=ftString;
OrdersQuery.Parameters.ParamByName('emid').Value:=Edit1.Text;
ADD

Вообще-то и не парился бы в этом случае с параметризированным запросом, сформировал бы запрос програмно. ИМХО
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 08.08.2013 в 00:10.
Аватар вне форума Ответить с цитированием
Старый 08.08.2013, 00:20   #10
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Нет, Не то. если передаю в едите 3,7 результате возвращает 4 ..... Ну ладно будем без параметр пользовать. Поиграю немножко, Аватар что делать, бывает иногда что поставить такой задачу и надо выполнять... Люди разные )
xxbesoxx вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько условий в Экселе Margo1701 Microsoft Office Excel 9 29.07.2013 09:28
Условное форматирование несколько условий Artem_85 Microsoft Office Excel 3 09.11.2012 19:06
ЕСЛИ(И()) несколько условий VictorM Microsoft Office Excel 10 04.02.2012 15:40
Проверить несколько условий D.O.G Общие вопросы Delphi 3 15.10.2010 10:27
Удалить строки, несколько условий Zirat Microsoft Office Excel 5 19.09.2009 14:03