D7,
在过程内建立数据库连接,有用try ... finally 释放
但是每次调用该过程的时候,内存都有所增加,一直没法释放出来
难道是用存储过程后内存无法释放
代码如下:procedure TRecvFile.UpdateDB;
var
  conn: TADOConnection;
  sp: TADOStoredProc;
begin
  conn := TADOConnection.Create(nil);  conn.ConnectionString := 'FILE NAME=conn.udl';
  try
    conn.Open();
  except
     on e: Exception do
     begin
       raise Exception.Create('connection fail!\n' + e.Message);
       Exit;
     end;
  end;
    
  sp := TADOStoredProc.Create(nil);
  
  sp.Connection := conn;
  
   with sp do
   begin
     Active := false;
     Close();     ProcedureName := 'spAdd_Detail;1';
     Parameters.Clear();
     Parameters.Refresh();
     Parameters.ParamByName('@isSucc').Value := BoolToStr(FIsSucc,True);
     Parameters.ParamByName('@Memo').Value := FMftResult;
     Parameters.ParamByName('@Cabin_filename').Value := StringReplace(ShortFileName,ExtractFileExt(FileName),'',[rfIgnoreCase]);
     Parameters.ParamByName('@Result_filename').Value := ShortFileName;
     Parameters.ParamByName('@Result_time').Value := FileModiflyTime;
     Prepared := True;
   end;  
  conn.BeginTrans();  try
    try
      sp.ExecProc();
      conn.CommitTrans();
    except
      on e: Exception do
      begin
        conn.RollbackTrans();
        raise Exception.Create('fail!\n' + e.Message);
        Exit;
      end;
    end;
  finally
    sp.Close();
    sp.Free();
  
    conn.Close();
    conn.Free;
  
  end;
  
end;