PDA

Ver la Versión Completa : añadir definicion de campos en ejecucion


avmm2004
29-05-2008, 17:21:26
Hola a todos.
Estoy liado ahora con un programa que me permita meter una sentencia sql en un memo, luego que me cargue esa sentencia en un query y luego que me muestre el resultado de esa sentencia en un grid.

Bien.

EL problema es que al ser la sentencia dinámica (SELECT tecleada por el operador) no se cual es la tabla, no se los campos que quiere, no se.....:confused:

Estoy buscando un metodo para añadir los campos en tiempo de ejecución, segun lo que teclee el operador al dataset, lo que seria el fields editor de un query y luego hacer eso mismo con el grid.

¿¿¿ Alguna inapreciable ayuda ???;)

Gracias.

roman
29-05-2008, 17:26:47
que me permita meter una sentencia sql en un memo, luego que me cargue esa sentencia en un query y luego que me muestre el resultado de esa sentencia en un grid.


Pues para hacer todo eso no necesitas saber ni la tabla ni los campos ni nada:


Query.SQL.AddStrings(Memo.Lines);
Query.Open;


Una vez hecha la consulta,puedes examinar Query.Fields para ver los campos pedidos.

// Saludos

avmm2004
29-05-2008, 17:54:11
Pues para hacer todo eso no necesitas saber ni la tabla ni los campos ni nada:


Código Delphi [-] (http://www.clubdelphi.com/foros/#)
Query.SQL.AddStrings(Memo.Lines);
Query.Open;





Una vez hecha la consulta,puedes examinar Query.Fields para ver los campos pedidos.

// Saludos

Gracias, Roman.

Esa parte si la conocia, el problema es que no utilizo un grid estandar y tengo que añadir los campos al grid y estaba buscando una analogia de como hacerlo manualmente para hacerlo en un quantumgrid.

Tal vez, no supe explicarme. Gracias.

Caro
29-05-2008, 18:16:30
Hola avmm2004, para armar la consulta puedes ir piendo campo a campo y vas concatenando a tu consulta al igual que la tabla.

Y vas creando las columnas de tu DBGrid de esta forma:


With DBGrid do
begin
With Columns.Add do
begin
FieldName := 'Campo1';
Title.Caption := 'TituloCampo1';
Columns[0].Title.Font.Color := 16777215;
Width := 100;
end;
With Columns.Add do
begin
FieldName := 'Campo2';
Title.Caption := 'TituloCampo2';
Columns[1].Title.Font.Color := 16777215;
Width := 100;
end;
...
...
...


Saluditos

avmm2004
29-05-2008, 23:10:49
Por si alguien lo trabaja el metodo es CreateAllfields para el PivotGrid.

Gracias a todos.