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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2016, 19:40   #1
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию Создать динамический запрос для выборки по нескольким полям

Есть большая таблица, в которой много полей. Нужно сделать возможность отбора по нескольким полям одновременно. По одному полю или двум делаю без проблем, но нужно создать универсальную процедуру, чтобы выборка осуществлялась по нескольким полям с условиями "И" и "ИЛИ", т.е. нужно сделать универсальный фильтр для таблицы.
edsjeka вне форума Ответить с цитированием
Старый 30.05.2016, 19:44   #2
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию

Код HTML:
DataModule1.SQLQuery1.Close;
         DataModule1.SQLQuery1.SQL.Text:='SELECT cartridgi.IDCartridga, cartridgi.DatePriema, sprmodeleycartridgey.ModelCartridga, sprindexov.Indeks,'+
         ' sprklientov.NameKlient, cartridgi.Articul, sprstatusov.Status, sprmanager.Manager, sprmanagervid.Managervid, sprmasterov.master, cartridgi.NumZayavki,'+
         ' cartridgi.komments, cartridgi.DateVidachi, sprmestrabot.mestorabot, cartridgi.daterabot, cartridgi.UchetVzp,'+
         ' cartridgi.DocVist, cartridgi.Nal_bn, sprpredpr.namepredpr, sprTipOpl.TipOpl'+
         ' FROM cartridgi'+
         ' LEFT JOIN sprmodeleycartridgey ON cartridgi.IDModelCartridga = sprmodeleycartridgey.IDModelCartridga'+
         ' LEFT JOIN sprindexov ON sprmodeleycartridgey.IDIndexa = sprindexov.IDIndexa'+
         ' LEFT JOIN sprklientov ON cartridgi.IDKlienta = sprklientov.IDKlienta'+
         ' LEFT JOIN sprstatusov ON cartridgi.IDstatusa = sprstatusov.IDStatusa'+
         ' LEFT JOIN sprmanager ON cartridgi.IDManagerPrin = sprmanager.IDManager'+
         ' LEFT JOIN sprmanagervid ON cartridgi.IDManagervidal = sprmanagervid.IDManager'+
         ' LEFT JOIN sprmestrabot ON cartridgi.IDMestaRabot = sprmestrabot.IDMestaRabot'+
         ' LEFT JOIN sprmasterov ON cartridgi.IDMastera = sprmasterov.IDmastera'+
         ' LEFT JOIN sprpredpr ON cartridgi.IDPredpr = sprpredpr.IDPredpr'+
         ' LEFT JOIN sprtipopl ON cartridgi.IDTipOpl = sprTipOpl.IDTipOpl'+
         ' WHERE '+dinzapr+
         ' ORDER BY cartridgi.DatePriema DESC';
Вот такой запрос для вывода таблицы. Не получается сделать саму процедуру, для формирования переменной dinzapr, в которой будет содержаться условие.
edsjeka вне форума Ответить с цитированием
Старый 31.05.2016, 05:35   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Вот такой запрос для вывода таблицы. Не получается сделать саму процедуру,
Код:
-- 1) Создать процедур без параметров
create proc MyProc1
 as
select * from Orders
where OrderID in(10248, 10250)
order by 1 desc

-- Вызвать
exec  MyProc1

-- 2) Создать процедур с параметров
create proc MyProc2
 @MyID int
as
select * from Orders
where OrderID = @MyID
order by 1 desc

-- при вызове @MyID= 10250

exec MyProc @MyID= 10250
Так понятно ?

Последний раз редактировалось xxbesoxx; 31.05.2016 в 05:39.
xxbesoxx вне форума Ответить с цитированием
Старый 31.05.2016, 06:38   #4
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

я думаю автор имел ввиду другое .


Код:
declare @SQL varchar(max) 

SET NOCOUNT ON;
  
set @SQL ='  select * from TABLE
where  '+@DOP_USL+'  '

exec (@sql)
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 31.05.2016, 06:49   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Это если он хранимую процедуру сделает и так параметр её передаст. Судя по коду навряд ли. У ТС не получается саму строку условий сформировать. И не важно где он будет это делать - проблемы одинаковые. Путь решения зависит от конкретного набора возможных условий фильтра, абстрактного пути нет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по нескольким полям soctellad PHP 8 02.09.2013 15:30
Создать запрос выборки из нескольких таблиц skilk SQL, базы данных 10 03.03.2012 10:47
Как составить запрос по нескольким полям lysyuk1 БД в Delphi 3 17.11.2011 10:13
Прошу помочь с макросами для выборки определенных данных по нескольким критериям rdt Microsoft Office Excel 6 30.07.2010 13:12
Sql запрос по нескольким полям Епгений БД в Delphi 6 20.06.2010 12:04