Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como asignar varias consultas SQL a un mismo ADODataSet? (https://www.clubdelphi.com/foros/showthread.php?t=75746)

ezequiel913 16-09-2011 04:53:07

Como asignar varias consultas SQL a un mismo ADODataSet?
 
hola gente!!!

bueno el tema es el siguiente:

quiero saber como poder asignar varias consultas SQL a un mismo ADODataSet y poder decidir cual usar cuando yo quiera.

tengo una unidad la cual se encarga de cargar los datos que obtiene de una consulta SQL en un COMBOBOX. ese ADODataSet tiene asignado una consulta SQL en su propiedad SQL. pero yo quiero asignarle otra consulta SQL para poder cargar otro COMBOBOX con otros datos que los tiene que obtener de otra sentencia SQL.

el codigo de la unidad que tengo es el siguiente:

Código Delphi [-]
Procedure CargarCombo(AdoSet: TADODataSet; Var CBX: TComboBox);
Begin
    CBX.Items.Clear;
    adoset.Open;

    If (adoset.Bof = True) and (adoset.Eof = True) Then
      Exit
    Else Begin
      While not adoset.Eof Do Begin
        CBX.Items.Add(adoset.Fields[0].Value);
        adoset.Next;
      End;
    End;
    adoset.Close;
End;

la sentencia SQL que tiene asignado el ADODataSet es la siguiente:
Código SQL [-]
Select RazonSocial From Proveedores order by RazonSocial

este codigo se encarga de cargar todas las razones sociales que se encuentran en la tabla proveedores en el ComboBox.

ahora quiero utilizar esta unidad, con el mismo ADODataSet pero utilizando otra sentencia SQL.

bueno eso seria todo, sino se entiende lo que quiero avísenme.

gracias!!!
saludos.

ecfisa 16-09-2011 07:42:53

Hola ezequiel913.

No sé si entiendo bién lo que buscas hacer. Pero por lo que te entendí, basta con asignarle la consulta que querés a la propiedad CommandText del ADODataSet.
Por ejemplo:
Código Delphi [-]
  ...
  with ADODataSet1 do
  begin
    Close;
    CommandText:= 'Select RazonSocial, Dirección from Proveedores order by Direccion';
    Open;
  end;
  ...

Si tenés que cambiar de consulta muy a menudo podés hacerte un procedimiento para realizarlas:
Código Delphi [-]
procedure TForm1.ConsultarADODataSet(ADOds: TADODataSet; const Consulta: string);
begin
  with TADODataSet(Tabla) do
  begin
    Close;
    CommandText:= Consulta;
    Open;
  end;
end;

Llamadas de ejemplo:
Código Delphi [-]
...
  ConsultarADOds(ADODataSet1,'Select RazonSocial, Dirección from Proveedores order by Direccion');
  ConsultarADOds(ADODataSet1,'Select * from Proveedores order by Localidad');
  ConsultarADOds(ADODataSet1,'Select Telefono from Proveedores where sexo = ''F'''; //:)
...


Un saludo.


La franja horaria es GMT +2. Ahora son las 19:23:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi