Текущий архив: 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.48 MB
Время: 0.008 c