Ver Mensaje Individual
  #3  
Antiguo 03-09-2010
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Como dice Ñuño, no tienes nada que haga lo que pides.

Lo que suele hacerse es "inventar" una opción para que la ocultar una columna en un grid, se quite la columna del select (por ejemplo), o también hacer el select * aunque no se necesite todos los campos (esto es ineficiente, pero suele ocurrir que necesitas un campo para realizar operaciones aunque el usuario no quiera verlo en una rejilla de datos.

Código Delphi [-]
var 
  campos :string;
begin 
  campos := 'select ';
  for i:= 0 to grid1.columns.count-1 do
     if grid1.columns[i].visible then campos := campos + grid1.columns[i].Field.FieldName + ', '
  grid1.dataset.sql.text := copy(campos, 1, length(campos) -2) ; //quitar la ultima coma y espacio
  grid1.dataset.sql.add('from mi tabla');
  grid1.dataset.Close;
  grid1.dataset.Open;
end;
(hecho de memoria... tendrá algun error por ahí).

En caso de que no te sirva esta opción, recuerda que también puedes iterar por Dataset.TFields, por ejemplo:
Código Delphi [-]
campos := 'select ';
for i:= 0 to dataset.fields.count-1 do
  if pos(lowercase(dataset.fields[i].fieldname), 'codigo;nombre;Direccion;estado') < 1 then campos := campos + dataset.fields[i] + ', '
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 03-09-2010 a las 17:54:47.
Responder Con Cita