如何解决数据库死进程巨增的问题? _+_ 在线等...
i405 2005-03-28 12:19:58 D7 + Oralce8.17
AdoQuery AdoTable AdoProcedure 都是自动创建的,执行完相应代码后再释放掉.
可实际情况是程序运行才三四天,未活动的进程就达90多了!!!
应该是每建立一个数据库连接后并没有关闭(我都是用的close 来关闭的,free来释放的)
代码如下:
AdoQury_del:=TAdoQuery.Create(self);
AdoQury_del.ConnectionString:='Provider=MSDAORA.1;Password='+Pwd+';User ID
='+Account+';Data Source='+DataBase;
With AdoQury_del Do
Begin
close;
sql.Clear;
sql.Add('delete from INFO where id=:s1');
parameters[0].value:=Id;
ExecSql;
close;
Free;
end;
AdoTable:=TADOTable.Create(self);
AdoTable.ConnectionString:='Provider=MSDAORA.1;Password='+Pwd+';User
ID='
+Account+';Data Source='+DataBase;
AdoTable.TableName:='info';
AdoTable.Active:=True;
ADoTable.Append;
执行...
ADoTable.Post;
AdoTable.Active:=False;
AdoTable.Free;
AdoProc:=TADOStoredProc.Create(self);
AdoProc.ConnectionString:='Provider=MSDAORA.1;Password='+Pwd+';User
ID='
+Account+';Data Source='+DataBase;
ADoProc.ProcedureName:='YT';
AdoProc.Parameters.CreateParameter('Id',ftString,pdInput,30,null);
AdoProc.Parameters.ParamByName('Id').Value:=Id;
AdoProc.Parameters.CreateParameter('Dte',ftString,pdInput,30,null);
AdoProc.Parameters.ParamByName('Dte').Value:=e_Date;
ADoProc.ExecProc;
AdoProc.Active:=False;
AdoProc.Free;