|
#1
|
|||
|
|||
Вывод SQL запроса
Вроде простой вопрос даж стыдно, но чего та везде пишут только как сам запрос составить ,а как выести его в какое либо поле никак не могу найти
Вот например я считаю сумму: SELECT sum(Vznos) from lovepriz Как сделать обработчик кнопки с выводом результата в Едит? и как в DBGride оставить какую либо колонку или оставить какие либо записи строк по какому либо полю, например мужчин оставить по полю Pol='М' ? |
#2
|
|||
|
|||
1.
Код:
Edit1.Text := ADOQuery1.Fields[0].AsString; 2. Колонку - напрямую никак. Записи - фильтровать выборку. Можно через свойства Filter и Filtered. Можно через обработчик OnFilterRecord (кажется так). |
#3
|
|||
|
|||
Цитата:
Фильтром очень геморно, я делал фильтром , тект получался у меня по 5 страниц, т.к. там большой алгоритм с If Else Then получается. Через SQL эти 5 страниц можно уместить в 5 строк максимум. Вот и прошу подсказать как в таблицу вывести результат запроса |
#4
|
|||
|
|||
Код:
Edit1.Text := ADOQuery1.Fields[0].AsString; Спасибо, это сделал остается вопрос как выводить в таблицу результаты отбора по нужным мне полям |
#5
|
||||
|
||||
letair, а каким образом ты условие пытаешься строить (ЧекБоксы, РадиоГрупы, КомбоБоксы) ?
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#6
|
|||
|
|||
Цитата:
ЧекБоксы и КомбоБоксы, причем выстраивал разные варианты через AND OR, чтобы отрабатывались все варианты отмеченных галочек и комбо, в общем текст получился на кучу страниц, в SQL же вроде проще отбор происходит, это если в SQL Мониторе, но оператор же туда не полезет, нужно в проге такую табличку и готовые кнопки с запросами |
#7
|
||||
|
||||
маленький пример из того, как это делал я:
Код:
procedure TfFilter.btOKClick(Sender: TObject); var kDelim, cnt:integer; dFilt:string; begin kDelim:=0; dFilt:=''; DM.VIEW_DS.Filtered:=False; DM.VIEW_DS.Filter:=''; for cnt:=1 to 3 do begin cb:=TCheckBox(FindComponent('b'+IntToStr(cnt))); if cb.Checked=True then begin ed:=TEdit(FindComponent('b'+IntToStr(cnt)+'ed')); Inc(kDelim); if kDelim>=2 then dFilt:=' and ' else dFilt:=''; DM.VIEW_DS.Filter:=DM.VIEW_DS.Filter+dFilt+ed.Hint+' = '''+ed.Text+'*'''; end end; DM.VIEW_DS.Filtered:=True; Close; end; P.S.: 1. Кол-во ЧекБоксов я знал заранее (3) ... поэтому вбил вручную (но можно и програмно посчитать) 2. Использовались ЧекБоксы и Едиты 3. Применялось только условие AND Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 20.10.2009 в 23:42. |