Имеются две таблицы — master и slave, связаны один ко многим. В первой таблице (таблица групп) ведутся записи по названиям групп. Во второй — по данным студентов. В таблице студентов вводятся данные по студентам (ФИО), оценки. Подсчитывается среднее арифметическое по оценкам. Если результат, например, 5, то студенту начисляется повышенная стипендия (установка поля student.Stip_100 в true). Как сделать так, чтобы при подсчете среднего арифметического по оценкам добавлялось значение поля stip в таблицу групп? (true — в группе есть студенты со стипендиями, false — нет студентов со стипендиями). Вся эта фигня нужна для более простого формирования отчетов.
В общем, делаю так:
procedure Tform2.DBGrid1EditButtonClick(Sender: TObject);
begin
if Form2.DBGrid1.SelectedIndex = 0 then
begin
Application.CreateForm(tForm5, Form5);
if (T_gruppa.State in [dsBrowse, dsEdit]) then Form5.ShowModal;
if Form5.ModalResult = mrOK then
T_gruppa.Append
else if Form5.ModalResult = mrYes then
T_gruppa.Edit
else if Form5.ModalResult = mrCancel then
Exit;
T_gruppaGruppa.Value := Form5.DBEdit1.Text;
T_gruppa.Post;
T_gruppa.Refresh;
end;
end;//if SelectedIndex
Это при добавлении новой группы. Со студентами ситуация практически таже. Но как мне добавить данные в таблицу групп, если осуществляется работа с таблицей студентов?
Не взыщите строго, на Делфи пишу меньше месяца=))
Здравствуйте, Karat, Вы писали:
K>Если данные изменения дожны производиться во время установки student.Stip_100 в true, то напиши простейший триггер на изменение таблицы!
аааа.... а можно узнать, как это приблизительно должно выглядеть? Хотя бы примерно...
Здравствуйте, Karat, Вы писали:
K>Здравствуйте, sasa001, Вы писали:
S>>Имеются две таблицы — master и slave, связаны один ко многим. В первой таблице (таблица групп) ведутся записи по названиям групп. Во второй — по данным студентов. В таблице студентов вводятся данные по студентам (ФИО), оценки. Подсчитывается среднее арифметическое по оценкам. Если результат, например, 5, то студенту начисляется повышенная стипендия (установка поля student.Stip_100 в true). Как сделать так, чтобы при подсчете среднего арифметического по оценкам добавлялось значение поля stip в таблицу групп? (true — в группе есть студенты со стипендиями, false — нет студентов со стипендиями). Вся эта фигня нужна для более простого формирования отчетов. S>>В общем, делаю так:
S>>procedure Tform2.DBGrid1EditButtonClick(Sender: TObject); S>>begin S>> if Form2.DBGrid1.SelectedIndex = 0 then S>> begin S>> Application.CreateForm(tForm5, Form5); S>> if (T_gruppa.State in [dsBrowse, dsEdit]) then Form5.ShowModal; S>> if Form5.ModalResult = mrOK then S>> T_gruppa.Append S>> else if Form5.ModalResult = mrYes then S>> T_gruppa.Edit S>> else if Form5.ModalResult = mrCancel then S>> Exit; S>> T_gruppaGruppa.Value := Form5.DBEdit1.Text; S>> T_gruppa.Post; S>> T_gruppa.Refresh; S>> end; S>> end;//if SelectedIndex
S>>Это при добавлении новой группы. Со студентами ситуация практически таже. Но как мне добавить данные в таблицу групп, если осуществляется работа с таблицей студентов? S>>Не взыщите строго, на Делфи пишу меньше месяца=))
K>Если данные изменения дожны производиться во время установки student.Stip_100 в true, то напиши простейший триггер на изменение таблицы!
Только ведь триггер — это вроде как для распределенных приложений. У меня-то все на одном локальном компе...
Здравствуйте, sasa001, Вы писали:
K>>А какой СУБД ты используешь? S>Парадокс.... Он не позволяет ломится в таблицу, когда работа идет с текущей ....
Не знаю как обстоят дела с триггерами в Парадох, но вот SQL Server, не важно установлен он на локальном компе или нет с триггерами дружит. Но если ты с триггерами не работал, то сам из своего приложения после перерасчета выполняй еще парочку запросов, Один из них Select по данному полю, а другой Update по тому же полю.
Здравствуйте, Karat, Вы писали:
K>>>А какой СУБД ты используешь? S>>Парадокс.... Он не позволяет ломится в таблицу, когда работа идет с текущей .... K>Не знаю как обстоят дела с триггерами в Парадох, но вот SQL Server, не важно установлен он на локальном компе или нет с триггерами дружит. Но если ты с триггерами не работал, то сам из своего приложения после перерасчета выполняй еще парочку запросов, Один из них Select по данному полю, а другой Update по тому же полю.
Хорошо, а если делать без запросов? Если делать что-то типа ФоксПро — это вообще возможно? Или без SQL-заапросов — никак?
Здравствуйте, sasa001, Вы писали:
S>Хорошо, а если делать без запросов? Если делать что-то типа ФоксПро — это вообще возможно? Или без SQL-заапросов — никак?