Таблицы...
От: sasa001  
Дата: 03.06.03 12:09
Оценка:
Имеются две таблицы — 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

Это при добавлении новой группы. Со студентами ситуация практически таже. Но как мне добавить данные в таблицу групп, если осуществляется работа с таблицей студентов?
Не взыщите строго, на Делфи пишу меньше месяца=))
Re: Таблицы...
От: Karat  
Дата: 03.06.03 12:18
Оценка:
Если данные изменения дожны производиться во время установки student.Stip_100 в true, то напиши простейший триггер на изменение таблицы!
Re[2]: Таблицы...
От: sasa001  
Дата: 03.06.03 12:25
Оценка:
Здравствуйте, Karat, Вы писали:

K>Если данные изменения дожны производиться во время установки student.Stip_100 в true, то напиши простейший триггер на изменение таблицы!


аааа.... а можно узнать, как это приблизительно должно выглядеть? Хотя бы примерно...
Re[2]: Таблицы...
От: sasa001  
Дата: 03.06.03 12:29
Оценка: :)
Здравствуйте, 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, то напиши простейший триггер на изменение таблицы!


Только ведь триггер — это вроде как для распределенных приложений. У меня-то все на одном локальном компе...
Re[3]: Таблицы...
От: Karat  
Дата: 03.06.03 13:14
Оценка:
Здравствуйте, sasa001, Вы писали:

S>Только ведь триггер — это вроде как для распределенных приложений. У меня-то все на одном локальном компе...


А какой СУБД ты используешь?
Re[4]: Таблицы...
От: sasa001  
Дата: 03.06.03 13:16
Оценка:
Здравствуйте, Karat, Вы писали:

K>А какой СУБД ты используешь?


Парадокс.... Он не позволяет ломится в таблицу, когда работа идет с текущей ....
Re[5]: Таблицы...
От: Karat  
Дата: 03.06.03 13:23
Оценка:
Здравствуйте, sasa001, Вы писали:

K>>А какой СУБД ты используешь?

S>Парадокс.... Он не позволяет ломится в таблицу, когда работа идет с текущей ....

Не знаю как обстоят дела с триггерами в Парадох, но вот SQL Server, не важно установлен он на локальном компе или нет с триггерами дружит. Но если ты с триггерами не работал, то сам из своего приложения после перерасчета выполняй еще парочку запросов, Один из них Select по данному полю, а другой Update по тому же полю.
Re[6]: Таблицы...
От: sasa001  
Дата: 03.06.03 13:27
Оценка:
Здравствуйте, Karat, Вы писали:

K>>>А какой СУБД ты используешь?

S>>Парадокс.... Он не позволяет ломится в таблицу, когда работа идет с текущей ....
K>Не знаю как обстоят дела с триггерами в Парадох, но вот SQL Server, не важно установлен он на локальном компе или нет с триггерами дружит. Но если ты с триггерами не работал, то сам из своего приложения после перерасчета выполняй еще парочку запросов, Один из них Select по данному полю, а другой Update по тому же полю.

Хорошо, а если делать без запросов? Если делать что-то типа ФоксПро — это вообще возможно? Или без SQL-заапросов — никак?
Re[7]: Таблицы...
От: Karat  
Дата: 03.06.03 13:36
Оценка:
Здравствуйте, sasa001, Вы писали:

S>Хорошо, а если делать без запросов? Если делать что-то типа ФоксПро — это вообще возможно? Или без SQL-заапросов — никак?


с SQL проще всего!
Re[8]: Таблицы...
От: sasa001  
Дата: 03.06.03 13:39
Оценка:
Здравствуйте, Karat, Вы писали:

K>с SQL проще всего!


Спасибки огромное ! Будем работать =)))
Re[9]: [moderator] Таблицы...
От: Хитрик Денис Россия RSDN
Дата: 03.06.03 14:16
Оценка: +1
Здравствуйте, sasa001 и Karat!

Ребята, нельзя столько оверквотить!
Правила нашего с вами форума.
Как правильно задавать вопросы. © 2001 by Eric S. Raymond; перевод: © 2002 Валерий Кравчук.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.