Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

params и расход памяти   Найти похожие ветки 

 
zig   (2005-10-03 23:49) [0]

всем привет
народ подскажите что в ниже приведенном примере может жрать память ??

есть прога (в которой используется ента проседура) при работе она отжирает не мало памяти примерно 100 кб на каждое выполнение прочедуры, которое освобождается тока при закрытии всей проги .если процедуру заблокировать по средством  exit (первая строка) то отжирание памяти прекращается

P.S. dataset.Params.Free;ситуации не меняет

procedure Tscanuser.dbupdate;
 var sql:string;
begin
// exit;  
if info.activport<>"" then
begin   // set на все поля

info.compname:= "test";
sql:="update complist set compname= :compname, activport= :activport where ip=:ip if @@ROWCOUNT = 0 "+
"insert into complist (ip,compname,activport,id) values (:ip,:compname,:activport,:id)";
(:ip,:compname,:username,:activport,:id)";

DataSet.CommandText:=sql;

 DataSet.Params.ParamByName("ip").AsString:=info.ip;
 DataSet.Params.ParamByName("compname").AsString:=info.compname;
 DataSet.Params.ParamByName("activport").AsString:=info.activport;
 DataSet.Params.ParamByName("id").Asinteger:=0;
end
else
begin
sql:="select ip from complist where ip=:ip if @@ROWCOUNT <> 0 "+
"update complist set activport= :activport where ip= :ip";
 DataSet.CommandText:=sql;

 DataSet.Params.ParamByName("activport").AsString:="notconnect";
 end;
 DataSet.EXECSQL;
// dataset.Params.Free;
end;


 
Плохиш ©   (2005-10-04 00:04) [1]

Этот ужас ещё и работает? 8-O Оно даже не откомпилируется!

> sql:="update complist set compname= :compname, activport=
> :activport where ip=:ip if @@ROWCOUNT = 0 "+
> "insert into complist (ip,compname,activport,id) values
> (:ip,:compname,:activport,:id)";

Это два разных параметра, с остальными аналогично.

> sql:="select ip from complist where ip=:ip if @@ROWCOUNT
> <> 0 "+
> "update complist set activport= :activport where ip= :ip";
>
>  DataSet.CommandText:=sql;
>
>  DataSet.Params.ParamByName("activport").AsString:="notconnect";
>

А остальные параметры дядя Пушкин устанавливать должен?


 
sniknik ©   (2005-10-04 00:38) [2]

смысла в селекте нет т.к. выполняется EXECSQL, он "закрыт" апдейтом, вполне возможно, что рекордсет "теряется".
это кроме параметров.

еще. отформатируй код наконец, без красивого/понятного кода, что угодно можно потерять, а не только 100кб. ;)
и переходи на нормальные компоненты... dbExpress для MSSQL уже "неатуален". ;)


 
evvcom ©   (2005-10-04 09:43) [3]

и на фиг каждый раз запрос переписывать?



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

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
4-1126229789
Ксардас
2005-09-09 05:36
2005.11.13
Обращение к портам LPT через WinAPI


14-1129792045
kot andrei
2005-10-20 11:07
2005.11.13
нужна идея


2-1129575723
ctokas
2005-10-17 23:02
2005.11.13
90 DEC в 90HEX


9-1119938373
4ECHOK
2005-06-28 09:59
2005.11.13
[RagDoll] Синтез движений персонажа


2-1129539802
kyn66
2005-10-17 13:03
2005.11.13
Как корректно закрыть файл лога?