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

Вниз

Стек переполнен   Найти похожие ветки 

 
kati   (2003-06-19 16:46) [0]

Обьясните пожалуйста, что означает следующее
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EStackOverflow with message "Stack overflow". Process stopped. Use Step or Run to continue.
Как его избежать


 
DevMaster   (2003-06-19 16:50) [1]


Что имеенно делает в єтот момент твоя программа???


 
Семен Сорокин   (2003-06-19 16:54) [2]

Зацикливается


 
kati   (2003-06-19 16:55) [3]

По нажатию Button запускается длинный цикл.(Кстати при использовании его в событии при открытии все нормально)


 
DevMaster   (2003-06-19 16:56) [4]

Выложи сюда код энтого цикла.... щас разберем! :)))


 
kati   (2003-06-19 17:00) [5]

Не судите строго что без коментариев
var p:pointer;
begin
with Query1 do
begin
If active then Close ;
SQL.Clear;
SQL.text:="select sum(km.Kolmen) from "P_K_en.db"km where km.kvartira= :Pip_komsKvartira";
Query1.Params[0].DataType:=ftInteger;
Query1.Params[0].paramType:=ptInput;
open;
close;
prepare;
p:=getbookmark;
disablecontrols;
DBGrid1.DataSource.DataSet:=MD.query1;
DBGrid1.DataSource.DataSet.Active:=true;
MD.pip_Koms.First;
while not MD.pip_Koms.Eof do
begin
MD.KV_koms.Open;
MD.KV_koms.Edit;
MD.pip_Koms.Edit;
MD.pip_Koms.FieldByName("ALL_KVT").Value:=MD.KV_koms.Lookup("KV",MD.pip_Koms.FieldByName("Kvartira").Value,"SALL");
MD.pip_Koms.FieldByName("tekpokaz").Value:=MD.KV_koms.Lookup("KV",MD.pip_Koms.FieldByName("Kvartira").Value,"tekpokaz");
Query1.Params[0].AsInteger := MD.pip_Koms.FieldByName("kvartira").AsInteger;
query1.Open;
// ShowMessage(Fields[0].AsString);
MD.pip_Koms.FieldByName("kolpip").Value:=Fields[0].asInteger;
query1.close;
//begin
MD.pip_Koms.Post;
MD.pip_Koms.Next;
end;
Gotobookmark(p);
enablecontrols;
MD.pip_Koms.open;
MD.pip_Koms.First;
MD.Tar_Km.Open;
MD.Tar_KM.First;
while not MD.pip_Koms.Eof do
begin
if MD.Pip_koms.fieldbyname("lgota").Value>0 then begin
MD.Tar_km.Edit;
MD.pip_Koms.Edit ;
MD.Pip_koms.fieldbyname("nash").Value:=MD.Pip_koms.fieldbyname("ALL_KVT").Value/MD.pip_Koms.FieldByName("kolpip").Value*MD.pip_Koms.FieldByName("kolmen").Value*MD.Tar_KM.fieldbyname("Cvet").Value*(1-MD.Pip_koms.fieldbyname("lgota").Value) ;
MD.Pip_koms.fieldbyname("AllS").Value:=MD.Pip_koms.fieldbyname("nash").Value+MD.Pip_koms.fieldbyname("Korrect").Value ;
end
else begin
MD.Tar_km.Edit;
MD.pip_Koms.Edit ;
MD.Pip_koms.fieldbyname("nash").Value:=MD.Pip_koms.fieldbyname("ALL_KVT").Value/MD.pip_Koms.FieldByName("kolpip").Value*MD.pip_Koms.FieldByName("kolmen").Value*MD.Tar_KM.fieldbyname("Cvet").Value;
MD.Pip_koms.fieldbyname("AllS").Value:=MD.Pip_koms.fieldbyname("nash").Value+MD.Pip_koms.fieldbyname("Korrect").Value ;
end; //


 
DevMaster   (2003-06-19 17:06) [6]

Ого......тут на год ...чтобы разобраться....:)))))
попробую раздуплить!!!


 
Семен Сорокин   (2003-06-19 17:10) [7]

p:=getbookmark; -при закрытом DataSet"е (Query1)


 
Семен Сорокин   (2003-06-19 17:18) [8]

при первом рассмотрении:
Непонятно к чему относился BookMark и EnableControls;

with Query1 do begin
Close;
SQL.Clear;
SQL.text:="select sum(km.Kolmen) from "P_K_en.db"km where km.kvartira= :Pip_komsKvartira";
DBGrid1.DataSource.DataSet:=MD.query1;
DBGrid1.DataSource.DataSet.Active:=true;
MD.pip_Koms.First;
while not MD.pip_Koms.Eof do begin
MD.pip_Koms.Edit;
MD.pip_Koms.FieldByName("ALL_KVT").Value:=MD.KV_koms.Lookup("KV",MD.pip_Koms.FieldByName("Kvartira").Value,"SALL");
MD.pip_Koms.FieldByName("tekpokaz").Value:=MD.KV_koms.Lookup("KV",MD.pip_Koms.FieldByName("Kvartira").Value,"tekpokaz");
Params[0].AsInteger := MD.pip_Koms.FieldByName("kvartira").AsInteger;
Open;
if not Eof then
MD.pip_Koms.FieldByName("kolpip").Value:=Fields[0].asInteger;
Close;
MD.pip_Koms.Post;
MD.pip_Koms.Next;
end;
MD.pip_Koms.First;
MD.Tar_Km.Open;
MD.Tar_KM.First;
while not MD.pip_Koms.Eof do begin
if MD.Pip_koms.fieldbyname("lgota").Value>0 then begin
MD.Tar_km.Edit;
MD.pip_Koms.Edit ;
MD.Pip_koms.fieldbyname("nash").Value:=MD.Pip_koms.fieldbyname("ALL_KVT").Value/MD.pip_Koms.FieldByName("kolpip").Value*MD.pip_Koms.FieldByName("kolmen").Value*MD.Tar_KM.fieldbyname("Cvet").Value*(1-MD.Pip_koms.fieldbyname("lgota").Value) ;
MD.Pip_koms.fieldbyname("AllS").Value:=MD.Pip_koms.fieldbyname("nash").Value+MD.Pip_koms.fieldbyname("Korrect").Value ;
MD.Tar_km.Post;
MD.pip_Koms.Post;
end
else begin
MD.Tar_km.Edit;
MD.pip_Koms.Edit ;
MD.Pip_koms.fieldbyname("nash").Value:=MD.Pip_koms.fieldbyname("ALL_KVT").Value/MD.pip_Koms.FieldByName("kolpip").Value*MD.pip_Koms.FieldByName("kolmen").Value*MD.Tar_KM.fieldbyname("Cvet").Value;
MD.Pip_koms.fieldbyname("AllS").Value:=MD.Pip_koms.fieldbyname("nash").Value+MD.Pip_koms.fieldbyname("Korrect").Value ;
MD.Tar_km.Post;
MD.pip_Koms.Post;
end;
if MD.Pip_koms.fieldbyname("lg_veteran").Value>0 then begin
MD.Tar_km.Edit;
MD.pip_Koms.Edit ;
MD.Pip_koms.fieldbyname("nash").Value:=(MD.Pip_koms.fieldbyname("ALL_KVT").Value/MD.pip_Koms.FieldByName("kolpip").Value*MD.pip_Koms.FieldByName("kolmen").Value*MD.Tar_KM.fieldbyname("Cvet").Value )- (MD.Tar_km.fieldbyname("lg_veteran").Value*MD.Tar_KM.fieldbyname("Cvet").Value*MD.Pip_koms.fieldbyname("lg_veteran").Value);
MD.Pip_koms.fieldbyname("AllS").Value:=MD.Pip_koms.fieldbyname("nash").Value+MD.Pip_koms.fieldbyname("Korrect").Value ;
MD.Tar_km.Post;
MD.pip_Koms.Post;
end;
MD.pip_Koms.next;
MD.Tar_km.next;
end;
end;


 
Sandman25   (2003-06-19 17:20) [9]

В 11 строке происходит Open до того, как установлено значение параметра.


 
Johnmen   (2003-06-19 17:50) [10]

Переполнение стека <- бесконечный рекурсивный вызов.
Смотри, где обработка к.-л. события приводит к возбуждению др. события, а оно в свою очередь - к возбуждению первого...



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

Форум: "Базы";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
1-44656
Igorok
2003-07-02 12:36
2003.07.14
StringGrid + OnKeyPress


1-44632
ЮРИЙ_К
2003-07-02 08:58
2003.07.14
Добавление строки в RichView или ему подобные с позиционированием


14-44819
Достатый
2003-06-25 23:28
2003.07.14
Забодало. Скупой платит дважды.


3-44616
b_baranov
2003-06-19 13:00
2003.07.14
По какому принципу назначать имена таблицам в базе?


3-44555
rosl
2003-06-20 04:16
2003.07.14
SQL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский