Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 16:13   #11
Alexander_20
Пользователь
 
Аватар для Alexander_20
 
Регистрация: 29.04.2009
Сообщений: 10
По умолчанию

И вновь я глупый здесь,у меня все чудно работает,я рад и вдруг за 24 часа до сдачи за контрольным примером я обнаруживаю что он считает сумму,но он считает сумму пропусков по одному студенту,потом когда начинаешь считать по второму он сумму пропусков по первому студенту плюсует с суммой пропусков по второму студенту,ну а третий соответственно первый + второй и + третий ...Че делать?Я понимаю что достал,но выручайте пожалуйста!!
Alexander_20 вне форума Ответить с цитированием
Старый 12.05.2009, 16:46   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
он сумму пропусков по первому студенту плюсует с суммой пропусков по второму студенту
Показывай ка делаешь? koma_grusha в принципе логичный выход показала, воспользуйся им.
I'm learning to live...

Последний раз редактировалось Stilet; 12.05.2009 в 16:48.
Stilet вне форума Ответить с цитированием
Старый 12.05.2009, 17:56   #13
Alexander_20
Пользователь
 
Аватар для Alexander_20
 
Регистрация: 29.04.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Показывай ка делаешь? koma_grusha в принципе логичный выход показала, воспользуйся им.
Пробовал,тогда при нажатии на кнопку во все поля 0 заносятся почему то,можт конечно я чет не то сделал,но он у меня в цикл while do не входит,а берет только первичные 0

procedure TForm5.Button1Click(Sender: TObject);
var
ed1,ed2,ed3:integer;
begin
ed1:=0;
ed2:=0;
ed3:=0;
while not adotable3.eof do
begin
if adotable3.fieldbyname('prichina').a sstring='не уважительная'
then ed1:=ed1+adotable3.fieldbyname('pro puskov').asinteger;
if adotable3.fieldbyname('prichina').a sstring='уважительная'
then ed2:=ed2+adotable3.fieldbyname('pro puskov').asinteger;
if adotable3.fieldbyname('prichina').a sstring='по болезни'
then ed3:=ed3+adotable3.fieldbyname('pro puskov').asinteger;
adotable3.Next;
end;
Edit1.text:=inttostr(ed1);
edit2.text:=inttostr(ed2);
edit3.text:=inttostr(ed3);
end;

Последний раз редактировалось Alexander_20; 12.05.2009 в 18:39.
Alexander_20 вне форума Ответить с цитированием
Старый 12.05.2009, 19:47   #14
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

попрбуй до цикла написать
Код:
adotable3.First;
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Старый 13.05.2009, 03:34   #15
Alexander_20
Пользователь
 
Аватар для Alexander_20
 
Регистрация: 29.04.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от koma_grusha Посмотреть сообщение
попрбуй до цикла написать
Код:
adotable3.First;
Пробовал, не получается(если через F7 идти)что он цикл проходит но сумма не наращивается...
У меня раньше работал еще вариант S@fer,но как я уже сказал,что он считается сумму по всем студентам,а не по одному....может еще есть варианты,пожалуйста,если не трудно

Последний раз редактировалось Alexander_20; 13.05.2009 в 14:46.
Alexander_20 вне форума Ответить с цитированием
Старый 13.05.2009, 12:15   #16
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
У меня раньше работал еще вариант S@fer,но как я уже сказал,что он считается сумму по всем студентам,а не по одному....может еще есть варианты
А что мешает сделать выборку по конкретному студенту?

Код:
Query.Active:=False;
Query.SQL.Clear;
Query.SQL.ADD('SELECT Sum(Propuskov) FROM Tablica WHERE ((Pricihina="не уважительный") AND (Student="Иванов"))');
Query.Active:=True;
Edit1.text:=Query.Fields[0].AsString;

Query.Active:=False;
Query.SQL.Clear;
Query.SQL.ADD('SELECT Sum(Propuskov) FROM Tablica WHERE ((Pricihina="уважительный") AND (Student="Иванов"))');
Query.Active:=True;
Edit2.text:=Query.Fields[0].AsString;

Query.Active:=False;
Query.SQL.Clear;
Query.SQL.ADD('SELECT Sum(Propuskov) FROM Tablica WHERE ((Pricihina="по болезни") AND (Student="Иванов"))');
Query.Active:=True;
Edit3.text:=Query.Fields[0].AsString;
Вместо "Иванов" используй переменную, в которую будет записываться искомый студент
S@fer вне форума Ответить с цитированием
Старый 13.05.2009, 12:49   #17
Alexander_20
Пользователь
 
Аватар для Alexander_20
 
Регистрация: 29.04.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от S@fer Посмотреть сообщение
А что мешает сделать выборку по конкретному студенту?
Отсутствие мозга и элементарных знаний...
т.е. описать какую-нибудь переменную k (string?) и чего ей потом присваивать тогда?Значение строки?
И вообще тогда получается,что это переменная должна автоматически сравниваться с записью о студенте(фамилии),так?

Последний раз редактировалось Alexander_20; 13.05.2009 в 14:53.
Alexander_20 вне форума Ответить с цитированием
Старый 13.05.2009, 21:28   #18
Lyuka Sin
 
Регистрация: 07.05.2009
Сообщений: 6
По умолчанию

Цитата:
там просто забыли сделать переход на следующую запись, вот и получается бесконечный цикл
Вы абсолютно правы все отлично работает, спасибо
Lyuka Sin вне форума Ответить с цитированием
Старый 14.05.2009, 08:04   #19
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
описать какую-нибудь переменную k (string?)
да
Цитата:
и чего ей потом присваивать тогда?Значение строки?
Ну вы же где-то выбираете по какому студенту вывести данные, вот и присваиваете этой переменной выбранного студента. Затем в вашей табличке должен быть или номер студента или его фамилия, вот по этому полю и будет проходить дополнительный поиск. Будет это выгледеть примерно так
Код:
var fio_stud:string;

fio_stud:=edit1.text //присвоение переменной фамилии выбранного студента

//далее идет запрос текст запроса выше
//только вместо
 AND (Student="Иванов")
//будет
 AND (Student="'+fio_stud+'")
S@fer вне форума Ответить с цитированием
Старый 14.05.2009, 18:41   #20
Alexander_20
Пользователь
 
Аватар для Alexander_20
 
Регистрация: 29.04.2009
Сообщений: 10
По умолчанию

S@fer и koma_grusha спасибо большое,все получилось,пошли оба варианта сдал и тот и тот вариант,препода устроило...
Alexander_20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос данных из DBGrid в DBGrid KingSize БД в Delphi 17 24.04.2009 09:30
Перенос данных из StringGrid-а в DBGrid artemavd БД в Delphi 16 21.03.2009 08:26
DBGrid: Как сделать собственную сортировку данных? AnTe БД в Delphi 17 26.02.2009 17:38
Расчет баз данных с выводом редактирования в DBGrid Veiron БД в Delphi 1 22.12.2008 14:53
Вставка данных(Excel) из clipboard в DBGrid mahsus Общие вопросы Delphi 1 07.10.2007 02:02