Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по SQL


Newuser ©   (2004-07-13 11:56:00) 

Это продолжение вопроса заданного вчера. Структура БД такова: в запросе использованы три таблицы-dbf: m_s0401-файл остатков (04-год, 01-месяц), m_nc-файл наименований, c_kei-единицы измерений. Соединяю таблицы 1 и 2 по nn-номенклатурный номер, 2 и 3 по (kei=kod) коду.


Newuser   (2004-07-13 15:06:00) [1]

[15]
Огромное спасибо!
Постараюсь дальше не "тупить", знаю, мне еще многому нужно учиться.
Желаю удачи!!!


Newuser   (2004-07-13 15:02:00) [2]

Соловьев ©   (13.07.04 14:40) [10]
Скажешь наверно головоломку придумал, сам понимаю, а сделать как лучше... в общем "затупился".


Соловьев   (2004-07-13 15:02:00) [3]


> т.е. основная тут трабла из-за того что в комбобоксах хранится
> строка. используй DBLookUpCombobox - тут подключи наборы
> данных по счетам и складам, и передавай параметр не строку,
> а код склада и код счета.

и не надо функции построения where


Соловьев   (2004-07-13 15:01:00) [4]


> Да, будешь наверно смеяться,

тут плакать надо...
тогда еще надо формировать и строку from тоже функция в которую передаются  RadioGroup1, RadioGroup2 , а в другую функцию, которая строит where - ComboBox1, ComboBox2.


>   ns="00000001" - это выбор склада ("00000001" - склад №1),
> ss="11100" - это выбор группы материала ("11100" - Другие
> необоротные материальные активы 11100). 11100 - это в плане
> счетов, балансовый счет.

т.е. основная тут трабла из-за того что в комбобоксах хранится строка. используй DBLookUpCombobox - тут подключи наборы данных по счетам и складам, и передавай параметр не строку, а код склада и код счета.


Newuser   (2004-07-13 14:59:00) [5]

Еще, - Во "from" при следующем варианте выбора (месяца) будет - from m_s0402 (2004 год, февраль)


Newuser   (2004-07-13 14:47:00) [6]

[10]
>а как играет роль здесь год и месяц?
Да, будешь наверно смеяться, но пока что год и месяц выбирается от сюда "from m_s0401...", то есть у нас файлы m_s0401, m_s0402, m_s0403, m_s0404 и т.д. Здесь год и месяц. (Ну база придумана не мной, я использую то, что дали).


Соловьев   (2004-07-13 14:40:00) [7]

а как играет роль здесь год и месяц?


Newuser   (2004-07-13 14:36:00) [8]

[8]
>какая логика этого where? можешь расписать?
Здесь a.nn=b.nn and b.kei=c.kod, думаю, понятно. А  ns="00000001" - это выбор склада ("00000001" - склад №1), ss="11100" - это выбор группы материала ("11100" - Другие необоротные материальные активы 11100). 11100 - это в плане счетов, балансовый счет.


Соловьев   (2004-07-13 14:29:00) [9]


>   SQL.Add('where a.nn=b.nn and b.kei=c.kod and ns="00000001"
> and ss="11100"');

какая логика этого where? можешь расписать?


Newuser   (2004-07-13 14:27:00) [10]

[6]
>Вариант 1: запрос с параметрами, при изменении в RadioGroup / ComboBox переоткрыть запрос
Для первого выбора по выбору первого пункта в каждом компоненте я пишу:
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;
Меня интересует, эту часть:
 case RadioGroup1.ItemIndex of
 0:
 case RadioGroup2.ItemIndex of
 0:
 case ComboBox1.ItemIndex of
 0:
 case ComboBox2.ItemIndex of
 0:
все время нужно будет писать? Ну естественно менять после of 1 2 3 и т.д.
А может вообще все по-другому?


HSolo   (2004-07-13 14:15:00) [11]

Вариант 1: запрос с параметрами, при изменении в RadioGroup / ComboBox переоткрыть запрос
Вариант 2: фильтрация (OnFilterRecord + св-во Filtered)


Newuser   (2004-07-13 12:38:00) [12]

Ильш ©   (13.07.04 12:07) [2]
>а вопрос то сам хде? опять мысли читать?
Извини, вопрос был такой:
Здравствуйте, уважаемые мастера! Помогите пожалуйста. Вопрос связан с использованием SQL-запроса. На форме разместил два RadioGroup-а и два ComboBox-а, в каждом из которых (в Items-ах) много значений. В DBGrid-е данные должны изменяться после именения в каждом из вышеуказанных компоненте. Подскажите, как в коде поступить, перебирать SQL по каждому значению? Или можно по-проще. Извините, если не правильно объяснил.


Newuser   (2004-07-13 12:20:00) [13]

[3]
>все поля покажи

m_s0401: 1.NS С 8, 2.TN С 5, 3.SS С 6, 4.NN С 8, 5.CENA N 15 2, Q1 N 15 4, 6.SUM1 N 15 2
m_nc: 1.SS C 6, 2.NN C 8, 3.NAMEM C 45, 4.KEI N 3 0.
c_kei: 1.TEXT_ C 10, 2.KOD N 3 0


Соловьев   (2004-07-13 12:08:00) [14]


>  m_s0401-файл остатков (04-год, 01-месяц), m_nc-файл наименований,
> c_kei-единицы измерений. Соединяю таблицы 1 и 2 по nn-номенклатурный
> номер, 2 и 3 по (kei=kod) коду.

все поля покажи


Ильш   (2004-07-13 12:07:00) [15]

очень смешно.. очень
а вопрос то сам хде? опять мысли читать?


Newuser   (2004-07-13 12:03:00) [16]

Соловьев ©
Или нужно описать все поля?


Наверх

Титульная страница Поиск, карта сайта Написать письмо