Форум: "Базы";
Текущий архив: 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.008 c