Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Campos Persistentes dinamicos (https://www.clubdelphi.com/foros/showthread.php?t=75037)

oscarac 26-07-2011 05:05:35

Campos Persistentes dinamicos
 
buenas noches...
tengo una consulta
como puedo hacer para que los campos de cualquier query se puedan crear dinamicamente..
me explico mejor con un ejemplo

tengo un componente TAdoquery, el cual uso para realizar 2 consultas, para generar un reporte

consulta 1
Código Delphi [-]
 
Select Campo1, Campo2, Campo3 from tabla
Consulta2
Código Delphi [-]
Select Campo1, Campo2, Campo3, Campo4 from tabla

en el componente yo tengo creado los 4 campos
pero cuando ejecuto la primera consulta, se borran el campo4 y no me deja generar el reporte

existe alguna funcion parecida al DBGrid1.Columns.RebuildColumns ??

ecfisa 26-07-2011 08:18:49

Cita:

como puedo hacer para que los campos de cualquier query se puedan crear dinamicamente
Hola oscarac.

Con un IBQuery podés crear los campos de este modo:
Código Delphi [-]
...
  private
    FDateField: TDateField;
  end;
...
implementation
...
// Agregar campo 
...
begin
  IBQuery1.Close;
  FDateField:= TDateField.Create(Self); // Crear
  FDateField.FieldName := 'FECHA';
  FDateField.Name := 'IBQuery1FECHA';
  FDateField.Index := IBQuery1.FieldCount;
  FDateField.DataSet := IBQuery1;
  IBQuery1.FieldDefs.UpDate; //Actualizar definición de campos
  IBQuery1.Open;
end;

// Eliminar campo 
...
begin
  IBQuery1.Close;
  FDateField.Free;  // Eliminar
  IBQuery1.FieldDefs.Update;  
  IBQuery1.Open;
end;
Supongo que tendría que funcionar igualmente con ADOQuery. Por supuesto tiene que corresponderse el tipo de campo especificado en la creación con el que se cargará de la tabla. Así como también el valor de FieldName.

Saludos.

ASAPLTDA 27-07-2011 16:22:09

hola
 
hola podrias crear el campo 4 en la primera consulta dinamicamente
Select Campo1, Campo2, Campo3, 0 campo4 from tabla


Cita:

Empezado por oscarac (Mensaje 407390)
buenas noches...
tengo una consulta
como puedo hacer para que los campos de cualquier query se puedan crear dinamicamente..
me explico mejor con un ejemplo

tengo un componente TAdoquery, el cual uso para realizar 2 consultas, para generar un reporte

consulta 1
Código Delphi [-]
 
Select Campo1, Campo2, Campo3 from tabla
Consulta2
Código Delphi [-]
Select Campo1, Campo2, Campo3, Campo4 from tabla

en el componente yo tengo creado los 4 campos
pero cuando ejecuto la primera consulta, se borran el campo4 y no me deja generar el reporte

existe alguna funcion parecida al DBGrid1.Columns.RebuildColumns ??



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

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