Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизВопрос по SQL. Найти похожие ветки
← →
Newuser © (2004-07-12 12:26) [0]Здравствуйте, уважаемые мастера! Помогите пожалуйста. Вопрос связан с использованием SQL-запроса. На форме разместил два RadioGroup-а и два ComboBox-а, в каждом из которых (в Items-ах) много значений. В DBGrid-е данные должны изменяться после именения в каждом из вышеуказанных компоненте. Подскажите, как в коде поступить, перебирать SQL по каждому значению? Или можно по-проще. Извините, если не правильно объяснил.
← →
Соловьев © (2004-07-12 12:29) [1]
> Подскажите, как в коде поступить, перебирать SQL по каждому
> значению?
менять только строку whereб согласно значениям RadioGroup и ComboBox
← →
Курдль © (2004-07-12 12:32) [2]Сейчас последует: "а по подробнее можно (с примерами, кодом и комментариями) за рание благодарен..."
← →
Johnmen © (2004-07-12 12:34) [3]см. Filter и Filtered
← →
Newuser © (2004-07-12 12:34) [4][1]
Да, но если у меня, например, в RadioGroup-е выбор года (2002, 2003, 2004), а в dbf-файле поле имеет совсем другие значения.
← →
Соловьев © (2004-07-12 12:35) [5]
> а в dbf-файле поле имеет совсем другие значения
LocalSQL.hlp+extract
← →
Newuser © (2004-07-12 12:36) [6][2]
Нет не попрошу готовые коды. Прошу только "подтолкнуть" на нужную тропу.
← →
Курдль © (2004-07-12 12:37) [7]СУБД какая?
← →
Newuser © (2004-07-12 12:38) [8][7]
DBASE.
← →
Newuser © (2004-07-12 12:40) [9][5]
>LocalSQL.hlp+extract
Поясните пожалуйста.
← →
Соловьев © (2004-07-12 12:42) [10]
> Поясните пожалуйста.
1-е - это файл справки. он ставится при уставноке БДЕ, 2-е - это функция выдергивания из даты года, месяца и т.п.
← →
Newuser © (2004-07-12 12:50) [11][10]
Я понимаю, но не только в дате дело. Например в ComboBox-е
Другие необоротные материальные активы (библиотечные фонды) 11100
А в поле ss="11100"
← →
Newuser © (2004-07-12 12:52) [12][10]
Извините, убегу минут на 40.
← →
Newuser © (2004-07-12 15:54) [13][10]
Так получилось, что из-за грозы у нас были отключены все компьютеры и только сейчас я могу дальше общаться с Вами.
Ну все-таки, как же быть?
>Другие необоротные материальные активы (библиотечные фонды) 11100
>А в поле ss="11100"
← →
Соловьев © (2004-07-12 15:59) [14]Copy,Pos,Lenght - F1
← →
Newuser © (2004-07-12 16:12) [15][14]
Хорошо, со справкой я ознакомлюсь, но все же я думаю Вы меня не понимаете. Проблема в том, что я перебираю каждый компонент таким образом:
procedure TFm_ostatView.Button2Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:
case RadioGroup2.ItemIndex of
0:
case ComboBox1.ItemIndex of
0:
case ComboBox2.ItemIndex of
0:
with Query1 do begin
SQL.Clear;
SQL.Add("select a.ns, ss, cena, q1, sum1, qt, sumt, data, b.namem, c.text_");
SQL.Add("from m_s0401 a, m_nc b, c_kei c");
SQL.Add("where a.nn=b.nn and b.kei=c.kod and ns="00000001" and ss="11100"");
SQL.Add("order by ss");
Open;
end;
end;
begin
case RadioGroup1.ItemIndex of
0:
case RadioGroup2.ItemIndex of
0:
case ComboBox1.ItemIndex of
0:
case ComboBox2.ItemIndex of
1:
with Query1 do begin
SQL.Clear;
SQL.Add("select a.ns, ss, cena, q1, sum1, qt, sumt, data, b.namem, c.text_");
SQL.Add("from m_s0401 a, m_nc b, c_kei c");
SQL.Add("where a.nn=b.nn and b.kei=c.kod and ns="00000001" and ss="11200"");
SQL.Add("order by ss");
Open;
end;
end;
................
А хочу проще сделать.
← →
Соловьев © (2004-07-12 16:14) [16]
> А хочу проще сделать.
TQuery.Params+F1
← →
Newuser © (2004-07-12 16:15) [17]Наверно я вообще все не так делаю, но как?
← →
Newuser © (2004-07-12 16:18) [18]Соловьев © (12.07.04 16:14) [16]
> Пробовал параметрический запрос. Но или я не так сделал, или... Ну не отправляйте к справке...
← →
Соловьев © (2004-07-12 16:22) [19]
> Но или я не так сделал,
как делал?
← →
Newuser © (2004-07-12 16:27) [20][19]
>как делал?
Ну примерно так:
select a.ns, ss, cena, q1, sum1, qt, sumt, data, b.namem, c.text_
from m_s0401 a, m_nc b, c_kei c
where a.nn=b.nn and b.kei=c.kod and ((nn= :Name_param) or (nn=:Name_param1)
or (nn=Name_param2) or (nn=Name_param3) or (nn=:Name_param4))
← →
Соловьев © (2004-07-12 16:51) [21]
> ((nn= :Name_param) or (nn=:Name_param1)
> or (nn=Name_param2) or (nn=Name_param3) or (nn=:Name_param4))
почему or? тебе же and надо?
тут действительно надо формировать строку where - параметры не спасут.
> А хочу проще сделать.
напиши функцию которая возвращает строку where:
with Query1 do begin
SQL.Clear;
SQL.Add("select a.ns, ss, cena, q1, sum1, qt, sumt, data, b.namem, c.text_");
SQL.Add("from m_s0401 a, m_nc b, c_kei c");
SQL.Add(build_where(RadioGroup1,RadioGroup2, Combobox1, Combobox2));
SQL.Add("order by ss");
Open;
← →
Newuser © (2004-07-12 16:57) [22][21]
>почему or? тебе же and надо?
Ну это я на примере одного компонента.
>SQL.Add(build_where(RadioGroup1,RadioGroup2, Combobox1, Combobox2));
А вот тут ничего понимаю...
← →
Соловьев © (2004-07-12 16:59) [23]
> А вот тут ничего понимаю...
функция которая на основе входных параметров построит строку where.
← →
Newuser © (2004-07-12 17:03) [24]А в where... ...RadioGroup1,RadioGroup2, Combobox1, Combobox2)); в таком виде и остается или подними подразумевается прописывание...
← →
Соловьев © (2004-07-12 17:10) [25]
> или подними подразумевается прописывание...
под этим поразумевается кодирование, т.е. написание функции, я привел как вызывать ее.
← →
Newuser © (2004-07-12 17:37) [26]Соловьев © (12.07.04 17:10) [25]
Понял, спасибо!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.032 c