Лазарус 0.9.31
FPC 2.4.4
WIN XP
Ничего не предвещало беды.
Внёс небольшие изменения в одну процедуру и всё.
После компиляции виснет на этапе "Идёт отладка...".
Пересобрал лазарус. Пофиг.
Что делать и как с этим бороться?
Модератор: Модераторы
sign писал(а):Лазарус 0.9.31
FPC 2.4.4
WIN XP
Ничего не предвещало беды.
Внёс небольшие изменения в одну процедуру и всё.
После компиляции виснет на этапе "Идёт отладка...".
Пересобрал лазарус. Пофиг.
Что делать и как с этим бороться?
sign писал(а):Что делать и как с этим бороться?
minoshi писал(а):1) Не скажите откуда брали Ваш Лазарус и что он из себя есть. Я так подозреваю, что это срез, но какая версия?
minoshi писал(а):2) не назовете, что за юнит, в котором Вы вносили изменения (часть Вашей программы? часть Лазаруса?)
minoshi писал(а):3) не покажете проблемный код в двух вариантах (что было и что стало) и заодно не скажете, что вы хотели добиться.
minoshi писал(а):4) не покажете, что пишет Лазарус в окне "Сообщения". Если Лазарус виснет наглухо и скопировать сообщения не возможно, то хотя бы сделайте снимок с экрана.
sign писал(а):Но, если снова запустить на исполнение, снова Лазарус "стоит" на этапе "Идёт отладка...". Как будто он циклит внутри себя.Процессор занят на 50%.
...
qList: TSQLQuery;
...
procedure TDM.OpenList(_Date: TDate; _Filter: Boolean = False);
var Un: Int64;
L: TStringList;
begin
L := CurrentSQLList.MakeSQL(_Date, _Filter);
if Assigned(L) then begin
qList.Close;
qList.SQL.Clear;
qList.SQL.Assign(L);
L.Free;
qList.SQL.SaveToFile('c:\txt.txt');
qList.ParamByName('Yr1').AsInteger := YearOf(_Date);
qList.ParamByName('Mn1').AsInteger := MonthOf(_Date);
qList.ParamByName('Yr2').AsInteger := YearOf(_Date);
qList.ParamByName('Mn2').AsInteger := MonthOf(_Date);
Un := CurrentSQLList.Un;
qList.Open;
qList.Locate('Un', Un, []);
end;
end;
SELECT L.Un, L.FIO, L.Phone, L.Info, L.Comm, R.NNPCTO, R.NNPCTO_Sponsor, R.NNPCTO_Status, R.NNPCTO_DC, R.Virta_Status, R.NNPCTO_DateIn, R.NNPCTO_IsDel, R.NNPCTO_IsMy, R.CIINS, R.CIINS_Sponsor, R.CIINS_DC, R.CIINS_Status, R.CIINS_IsDel, R.CIINS_IsMy, M0.SNNPCTO as SN0, M0.SVirta as SV0, M0.SCIINS as SC0, M1.SNNPCTO as SN1, M1.SVirta as SV1, M1.SCIINS as SC1 FROM list L LEFT JOIN reg R ON L.Un = R.Un LEFT JOIN (SELECT Un, SUM(BallNNPCTO*CountBuy) As SNNPCTO, SUM(BallVirta*CountBuy) As SVirta, SUM(BallCIINS*CountBuy) As SCIINS FROM move0 WHERE EXTRACT(YEAR FROM DateOp)=:Yr1 and EXTRACT(Month FROM DateOp) = :Mn1 GROUP BY Un ORDER BY Un) M0 ON L.Un = M0.Un LEFT JOIN (SELECT Un, SUM(BallNNPCTO*CountBuy) As SNNPCTO, SUM(BallVirta*CountBuy) As SVirta, SUM(BallCIINS*CountBuy) As SCIINS FROM move1 WHERE EXTRACT(YEAR FROM DateOp)=:Yr2 and EXTRACT(Month FROM DateOp) = :Mn2 GROUP BY Un ORDER BY Un) M1 ON L.Un = M1.Un
WHERE ((L.Info = 0)
AND ((NOT ((NNPCTO_IsDel and CIINS_IsDel AND (M0.SNNPCTO=0 AND M0.SVirta=0 AND M0.SCIINS=0)) or (NNPCTO=0 and CIINS_IsDel AND (M0.SNNPCTO=0 AND M0.SVirta=0 AND M0.SCIINS=0)) or (CIINS=0 and NNPCTO_IsDel AND (M0.SNNPCTO=0 AND M0.SVirta=0 AND M0.SCIINS=0))))))
ORDER BY NNPCTO_IsMy, NNPCTO
...
qList.SQL.Clear;
qList.SQL.Assign(L);
//L.Free;
qList.SQL.SaveToFile('c:\txt.txt');
qList.ParamByName('Yr1').AsInteger := YearOf(_Date);
qList.ParamByName('Mn1').AsInteger := MonthOf(_Date);
qList.ParamByName('Yr2').AsInteger := YearOf(_Date);
qList.ParamByName('Mn2').AsInteger := MonthOf(_Date);
Un := CurrentSQLList.Un;
showmessage(qList.SQL.text);
qList.Open;
L.Free;
qList.Locate('Un', Un, []);
...
procedure TDM.OpenList(_Date: TDate; _Filter: Boolean = False);
var Un: Int64;
L: TStringList;
begin
L := CurrentSQLList.MakeSQL(_Date, _Filter);
if Assigned(L) then begin
qList.Close;
qList.SQL.Clear;
qList.SQL.Assign(L);
qList.ParamByName('Yr1').AsInteger := YearOf(_Date);
qList.ParamByName('Mn1').AsInteger := MonthOf(_Date);
qList.ParamByName('Yr2').AsInteger := YearOf(_Date);
qList.ParamByName('Mn2').AsInteger := MonthOf(_Date);
// qList.Open;
qTmp.Close;
qTmp.SQL.Clear;
qTmp.SQL.Assign(qList.SQL);
qTmp.ParamByName('Yr1').AsInteger := YearOf(_Date);
qTmp.ParamByName('Mn1').AsInteger := MonthOf(_Date);
qTmp.ParamByName('Yr2').AsInteger := YearOf(_Date);
qTmp.ParamByName('Mn2').AsInteger := MonthOf(_Date);
qTmp.Open;
Un := CurrentSQLList.Un;
qList.Locate('Un', Un, []);
L.Free;
end;
end;
dunin писал(а):в c:txt.txt все как надо сохраняется?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 232