Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.27;
Скачать: CL | DM;

Вниз

Неправильный цыкл?   Найти похожие ветки 

 
ava ©   (2003-03-09 23:00) [0]

Непонял в чем я ошибаюсь?

procedure TForm8.Button1Click(Sender: TObject);
begin
//Form1.Tpipl.First;
//while not Form1.Tpipl.EOF do
//begin
Query16.Params[0].AsInteger := Form1.TpiplP_NN.Value;
Query16.Active := True;
Form1.TSuma.Insert;
Form1.TSumaSData.Value := DateTimePicker1.Date;
Form1.TSumaDoc.Value := Edit2.Text ;
Form1.TSumaPsum.Value := Query16diff.Value*StrToFloat(Edit1.Text)/100;
Form1.TSumaRsum.Value :=0;
Form1.TSuma.Post;
Query16.Active :=False;
//end;
//Form1.Tpipl.Next;//перемещение к следующей записи
end;

работает
уберем // неработает


 
Романов Р.В. ©   (2003-03-09 23:06) [1]


> //end;
> //Form1.Tpipl.Next;//перемещение к следующей записи

Строчки местами поменяй


 
Anatoly Podgoretsky ©   (2003-03-09 23:08) [2]

Отсутствует Next в цикле


 
ava ©   (2003-03-10 12:09) [3]

> Романов Р.В.
>Строчки местами поменяй

Спасибо работает

В продолжение темы Данный цикл работает под ХР отлично, а под 98
обрывается "Lock file has grown too large"?
При замене в цикле SQL на перебор
Form1.TSuma.First;
b:=0;
while not Form1.TSuma.Eof do
begin
b:= b+Form1.TSumaPsum.Value-Form1.TSumaRsum.Value;
Form1.TSuma.Next;
end;
все работает нормально в чем проблема???


 
Anatoly Podgoretsky ©   (2003-03-10 12:12) [4]

Теперь есть Next в цикле


 
ava ©   (2003-03-10 12:30) [5]

Next исправил раньше
но
procedure TForm8.Button1Click(Sender: TObject);
begin
Form1.Tpipl.First;
while not Form1.Tpipl.EOF do
begin
Query16.Params[0].AsInteger := Form1.TpiplP_NN.Value;
Query16.Active := True;
Form1.TSuma.Insert;
Form1.TSumaSData.Value := DateTimePicker1.Date;
Form1.TSumaDoc.Value := Edit2.Text ;
Form1.TSumaPsum.Value := Query16diff.Value*StrToFloat(Edit1.Text)/100;
Form1.TSumaRsum.Value :=0;
Form1.TSuma.Post;
Query16.Active :=False;
Form1.Tpipl.Next;//перемещение к следующей записи
end;
end;
работает только в ХР

а в 98 пришлось
procedure TForm8.Button1Click(Sender: TObject);
var b: Real;
begin
Form1.Tpipl.First;
while not Form1.Tpipl.EOF do
begin
Form1.TSuma.First;
b:=0;
while not Form1.TSuma.Eof do
begin
b:= b+Form1.TSumaPsum.Value-Form1.TSumaRsum.Value;
Form1.TSuma.Next;
end;
// Query16.Params[0].AsInteger := Form1.TpiplP_NN.Value;
//Query16.Active := True;
Form1.TSuma.Insert;
Form1.TSumaSData.Value := DateTimePicker1.Date;
Form1.TSumaDoc.Value := Edit2.Text ;
Form1.TSumaPsum.Value := b*StrToFloat(Edit1.Text)/100; // Query16diff.Value
Form1.TSumaRsum.Value :=0;
Form1.TSuma.Post;
//Query16.Active :=False;
Form1.Tpipl.Next;//перемещение к следующей записи
end;
end;


 
Mike Kouzmine   (2003-03-10 12:34) [6]

Попробуй изменить privat dir. (lock file has ....)


 
MsGuns ©   (2003-03-10 12:41) [7]

Попробуй делать так:
var
e1: extended;


while not Form1.Tpipl.EOF do
begin
Query16.Params[0].AsInteger := Form1.TpiplP_NN.Value;
Query16.Active := True;
e1 := Query16diff.AsFloat;
Query16.Active :=False;
Form1.TSuma.Insert;
Form1.TSumaSData.Value := DateTimePicker1.Date;
Form1.TSumaDoc.Value := Edit2.Text ;
Form1.TSumaPsum.Value := e1*StrToFloat(Edit1.Text)/100;
Form1.TSumaRsum.Value :=0;
Form1.TSuma.Post;
//Query16.Active :=False;


 
sunrider   (2003-03-10 14:35) [8]

не дурно было бы если меняется значение параметров в запросе
сделать Query16.Prepare; и что вообще не работает? ошибки возникают или с результат не тот?


 
ava ©   (2003-03-10 15:16) [9]

>MsGuns
> Попробуй делать так:

разницы нет ошибка таже
"Lock file has grown too large"

>sunrider
>не дурно было бы если меняется значение параметров в запросе
>сделать Query16.Prepare; и что вообще не работает? ошибки >возникают или с результат не тот?

цикл начинает выполнятся но выпадает ошибка выше


 
MsGuns ©   (2003-03-10 15:53) [10]

1.Закрой делфу
2.Проверь наличие .lck в каталоге с БД и, если есть, убей их
3.Запусти прогу без Делфей

Все равно вылетает ?


 
ava ©   (2003-03-10 16:07) [11]

>MsGuns
>1.Закрой делфу
>2.Проверь наличие .lck в каталоге с БД и, если есть, убей их
>3.Запусти прогу без Делфей

>Все равно вылетает ?

Не помогает, но дело не в том что она не работает (ПРОГА РАБОТАЕТ)
под ХР в любом варианте, а под 98 именно этот цикл обрывается на половину и пришлось Query заменить на Table (см.выше)
но почему так???

а программу я запускаю вобще под 98 на другом компьютере где нет Делфей (BDE на месте), но и на моем под 98 этот цикл зависает.


 
MsGuns ©   (2003-03-10 16:28) [12]

Странно...
А эти таблы никак между собой не связаны ? Кстати, а сам запрос ты не выложил...


 
MsGuns ©   (2003-03-10 16:42) [13]

Стой-стой. Значицца так:
Есть ТАБЛА №1 с пиплами (TTable=Tpipl)
Для каждого из этих пиплов (P_NN), делается запрос к ТАБЛА №2, в котором чой-там считается (надо полагать, что какие-то башли)
После этого (как башли подсчитаны) в ТАБЛУ №3 (TTable=TSuma) добавляется запись, в поля которой заносится содержимое некоторых контролов, а также подсчитанная сумма (типа башли из ТАБЛЫ №2).

Если так, то:
- ВОПРОС:
Эти таблы как-то связаны между собой, к примеру мастер-деталом ?

- ПРЕДЛОЖЕНИЕ:
А нельзя ли ВСЮ эту офигень выполнить одним запросом с парметрами (в которые прописать значения контролов) или же сформированного динамически (SQL.Add(...) ?

У меня чутьишко, что где-то оно "захлебывается". Хотя причем здесь ксипишка ?!


 
ava ©   (2003-03-10 17:39) [14]

Tpipl является мастером для TSuma
Для всех людей надо начислить проценты от остатка денег в фонде
и записать в TSuma (но не в третью таблицу)
SQL

SELECT SUM( Psum- Rsum) as diff
FROM "summa.DB"Summa
WHERE Sdata <= :b1

b1 естественна дата начисления процентов



Страницы: 1 вся ветка

Текущий архив: 2003.03.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
14-88171
race1
2003-03-09 16:28
2003.03.27
эх


1-87933
МитяЙ2
2003-03-17 15:48
2003.03.27
WARNING и в Delphi и как от них избавиться


1-87989
Begemot
2003-03-13 17:54
2003.03.27
отделение одно цифры запятой


7-88284
Saracin
2003-02-01 14:29
2003.03.27
Отдать, время на обработку сообщений.


1-87931
Сергей
2003-03-13 19:04
2003.03.27
Подскажите, когда возникает ошибка Out Of Memory?