![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
Работает, спасибо )))
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
begin
k:=0; DShkola.Children.RecNo:=1; for j:=1 to 6 do begin DShkola.Teacher.RecNo:=j; for i:=3 to 6 do begin k:=k+(DShkola.Children.Fields[i+2].AsInteger*DShkola.teacher.Fields[i].AsInteger); if (k>=DShkola.Teacher.Fields[7].AsInteger) then begin DShkola.Children.Append; DShkola.Children.Fields[9]:=DShkola.Teacher.Fields[0]; exit; end; вот какая процедура у меня в итоге получилась. Она работает, но записывает, то что мне надо в таблицу CHILDREN, добавляя новую строку. А как сделать, чтобы записывалось в туже строку из которой брались данные для подсчета, т.е. вот в эту DShkola.Children.RecNo:=1; |
![]() |
![]() |
![]() |
#13 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Table1.RecNo:= //Перевести указатель
Table1.Delete;//Стереть строку Table1.InsertRecord([Form2.edit1.Text,Form2.Edit2.Text.. .Все поля через ЗПТ]);//Вставить новую P.S.:Должен быть способ и попроще.
Life is too short, play more...
Как правильно задавать вопросы |
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
begin
k:=0; DShkola.Children.RecNo:=1; for j:=1 to 6 do begin DShkola.Teacher.RecNo:=j; for i:=3 to 6 do begin k:=k+(DShkola.Children.Fields[i+2].AsInteger*DShkola.teacher.Fields[i].AsInteger); if (k>=DShkola.Teacher.Fields[7].AsInteger) then begin DShkola.Children.Append; DShkola.Children.Fields[9]:=DShkola.Teacher.Fields[0]; exit; end; Если в этой процедуре заменить строчку DShkola.Children.Append; на строчку DShkola.Children.Edit , тогда оно у меня строку не добавляет, но записывает результат в выделенную строку, а как сделать чтобы оно записывало во все строки подряд, т.е начинало и с первой и автоматически после каждой записи переводило курсор? |
![]() |
![]() |
![]() |
#15 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Чем неподходит то-что выше?
После Edit надо вобще-то ApplyRange;
Life is too short, play more...
Как правильно задавать вопросы |
![]() |
![]() |
![]() |
#16 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
![]()
Странный у Вас алгоритм!
Append - добавляет запись в конец(!) DShkola.Children.RecNo:=i; // переход на нужную строку DShkola.Teacher.RecNo:=j; // переход на нужную строку DShkola.Children.Delete; // удаляем эту строку со старыми записями DShkola.Children.InsertRecord([DShkola.Teacher.Fields[0].text,DShkola.Teacher.Fields[1].text,DShkola.Teacher.Fields[2].text.......]); // вставляем новую Не проверял, но в [ ] должен быть тип String
Life is too short, play more...
Как правильно задавать вопросы |
![]() |
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
То что віше не подходит, т.к. у меня неоткуда потом заново данніе в єту строку записывать. Это надо ставить дополнительные компоненты и бросать все туда-сюда. Я потом это пробую, если больше ничего не придумаю )))
А что делает ApplyRange? |
![]() |
![]() |
![]() |
#18 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
В том-то и дело, что мне не надо всю строку менять, а просто дописать значение в одно поле.
А алгоритм у меня странный, потому что я абсолютно ничего в этом не смыслю и с БД первый раз пришлось дело иметь. ))))) |
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
Я уже тут такого намутила и такими способами, что кошмар!!! Оно уже почти делает то что надо, ну конечно не до конца еще....
|
![]() |
![]() |
![]() |
#20 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
begin
for s:=1 to DShkola.Children.RecordCount do begin DShkola.Teacher.RecNo:=1; DShkola.Children.RecNo:=1; k:=0; for j:=1 to 6 do begin k:=0; for i:=3 to 6 do k:=k+(DShkola.Children.Fields[i+2].AsInteger*DShkola.teacher.Fields[i].AsInteger); //ShowMessage(inttostr(k)); if (k>=DShkola.Teacher.Fields[7].AsInteger) then begin DShkola.Children.Edit; DShkola.Children.Fields[9]:=DShkola.Teacher.Fields[0]; end else DShkola.Teacher.Next; end; DShkola.Children.Next; DShkola.Teacher.RecNo:=1; end; теперь оно у меня вот так выглядит |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
непонятки с данными | KiSH333 | БД в Delphi | 5 | 01.09.2008 08:36 |
Файл с данными | werser | БД в Delphi | 1 | 24.05.2008 23:40 |
сравнение с данными в таблице | Apo | БД в Delphi | 5 | 31.03.2008 19:24 |
Обмен данными по сети | Altera | Работа с сетью в Delphi | 2 | 23.02.2008 00:13 |
Операции над данными в ListBox | Mr.User | Помощь студентам | 14 | 23.11.2007 03:26 |