Ver Mensaje Individual
  #4  
Antiguo 01-03-2012
gustavosv gustavosv is offline
Miembro
 
Registrado: mar 2008
Posts: 51
Reputación: 17
gustavosv Va por buen camino
mira, llegué a la solución que muestro ...
Código Delphi [-]
en la forma FPedidos:

procedure TFPedidos.Button1Click(Sender: TObject);
var
  vSource: TDataSource;
begin
  vSource := TDataSource.Create(nil);
  vSource := oAgenteCial.Leer(FPrincipal.oConexion.GetConexion);
  if not (vSource = nil) then
    DBGrid1.DataSource := vSource;
end;

en la clase ...

function TAgenteCial.Leer(AConexion: TADOConnection): TDataSource;
var
  vQuery: TADOQuery;
  vSource: TDataSource;
begin
  Result := nil;
  vQuery := TADOQuery.Create(nil);
  vSource := TDataSource.Create(nil);
  vQuery.Connection := AConexion;

  vQuery.SQL.Text := 'SELECT venId, venNombre, venXMLClienteCons FROM GEN_Vendedores ';
  try
    vQuery.Active := True;
    if not vQuery.Eof then
    begin
      vSource.DataSet := vQuery;
      Result := vSource;
    end;
  finally
//    FreeAndNil(vQuery);
//    FreeAndNil(vSource);
  end;
end;
El problema es que como lo decías, el componente no hacía nada porque estaba mal asociado, estaba asociando el DataSource al Query y debía asociar el Query al DataSource: vSource.DataSet := vQuery;
El asunto es que queda el temita de la liberación de los objetos vQuery y vSource ...
Responder Con Cita