Ver Mensaje Individual
  #5  
Antiguo 24-02-2010
kasper kasper is offline
Miembro
 
Registrado: feb 2008
Posts: 20
Reputación: 0
kasper Va por buen camino
Cita:
Empezado por ZeroHot Ver Mensaje
Estoy de acuerdo con nuestro compañero ContraVeneno tu DataSource reprecenta tu fuente de tus datos entonces cuando le escribes la sentencia

Código Delphi [-]DataSource.DataSet:=ADOQuery1;


en español estas diciendo mi fuente de datos es igual a lo mismo que he consultado con el ADOQuery1, es por eso que cuando cuando liberas tu ADOQuery1 tu fuente se que da vacia y no muestra nada...

Te recomiendo que mejor nos expliques para que situacion quieres usar eso, es decir en realidad que es lo que quieres lograr cual seria la funcionabilidad y tal ves resulte otra forma de hacerlo mucho mas comoda...

Saludos desde R.D
Muchas gracias por tu aportación ZeroHot. Como dices voy a explicar el motivo por el cual quiero hacer esto y si alguien conoce una forma más elegante de hacerlo, lo agradeceré!
Tengo un formulario general y otro donde realizo las consultas a SQLServer. Me gustaría tener separado todo lo que refiere a consultas a SQLServer del formulario general, por lo que hago funciones del estilo:

Código:
procedure TForm1.FormCreate(Sender: TObject);
begin
    CargarClientes(DataSourceClientes);
    DBGridClientes.DataSource := DataSourceClientes; //quiero la
//información para mostrarla en un DBGrid
end;
y esta función está definida en el formulario donde se hacen todas las consultas a SQLServer, como por ejemplo:

Código:
procedure CargarClientes(var DataSource: TDataSource);
var
  ADOQueryClientes:TADOQuery;
begin
  Try
    ADOQueryClientes:=TADOQuery.Create(nil);
    //se realiza la conexión de "ADOQueryClientes"
    //consulta que quiero hacer
    ADOQueryClientes.Open;
    DataSource.DataSet:=ADOQueryClientes;
  Finally
    //FreeAndNil(ADOQueryClientes); //está comentado porque si lo
//descomento se pierde la información tal y como hemos estado hablando
  End;
end;
Nota: "DataSourceClientes: TDataSource" es un objeto visual del formulario general.

No se si así queda algo más claro. La solución rápida que se me ha ocurrido sería crear el AdoQuery desde el formulario general y pasárselo a la función para que se modifique en ella.
¿Me proponéis algún método mejor?
Muchas gracias por vuestra ayuda!
Saludos
Responder Con Cita