Ver Mensaje Individual
  #12  
Antiguo 08-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Reputación: 0
coso Va por buen camino
No le veo solucion aparte de las que ya te he comentado: pasarle un query tambien como parametro,

Código Delphi [-]
procedure TRDM_Consulta.CriaComponente(qtdCampoChave: Integer;nmTabela, SQL: string; qry : TSQLquery);
var
dsp: TDataSetProvider;
begin
   dsp := TDataSetProvider.Create(Self);
...
  dsp.DataSet := qry;
  dsp.Exported := True;
  dsp.UpdateMode := upWhereKeyOnly;
  dsp.Options := dsp.Options + [poAllowCommandText];
...

o bien que te devuelva un query

Código Delphi [-]
function TRDM_Consulta.CriaComponente(qtdCampoChave: Integer;nmTabela, SQL: string) : TSQLquery;
var
  qry: TSQLQuery;
  dsp: TDataSetProvider;
begin
  qry := TSQLQuery.Create(Self);
  dsp := TDataSetProvider.Create(Self);
  qry.Name := 'qry' + nmTabela;
  dsp.Name := 'dsp' + nmTabela
...
  dsp.OnDataRequest := dspDataRequestParam;
  CriaComponente := qry;
end;

ten en cuenta que en tu funcion no liberas qry ni dsp, por lo que la estas creando incontables veces.
Responder Con Cita