Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
6-88114
Cosmic
2003-02-05 07:50
2003.03.27
А как отключить порт?


1-87949
ArtyomW`
2003-03-17 18:28
2003.03.27
Программное нажатие кнопки


14-88157
eduard
2003-03-10 14:19
2003.03.27
internet


14-88226
Дмитрий К.К.
2003-03-12 06:33
2003.03.27
Именинники 12 марта


14-88233
SergeN
2003-03-12 07:53
2003.03.27
DDT





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский