Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-10-2008
Avatar de Cannabis
Cannabis Cannabis is offline
Miembro
 
Registrado: jun 2007
Posts: 170
Poder: 17
Cannabis Va por buen camino
Asigna formato de campos dentro de la BBDD

Cuando despliego información en un DBGrid asigno el formato a los campos:

Código Delphi [-](query1.FieldByName('Importe') AS TFloaField).DisplayFormat:= ',0.00' (query1.FieldByName('Fecha') AS TDateField).DisplayFormat:= 'dd/mmm/yyyy'


Trabajo exclusivamente con queries y cada vez que se actualiza la información o el usuario cambia el orden de los datos, tengo que asignar nuevamente el formato a cada campo.

¿Es posible definir el formato de los campos dentro de la base de datos?

Utilizo D7, Firebird 2.0 e IbExpert.

Gracias.

Salud.
Responder Con Cita
  #2  
Antiguo 14-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Cannabis,
¿Podrias explicarnos mejor tu duda?
Me extraña que cada vez que se actualiza los datos tengas que establecer los formatos. A menos de que se construyan las consultas dinámicamente no debería suceder.

¿A que te refieres a que el usuario cambia el orden de los datos?
Con FieldByName no importa si el campo en cuestión es el primero o el vigesimo segundo, si existe dicho campo lo encontrará.

Si tus consultas son estáticas lo que puedes hacer es definir los campos persistentes y de ese modo en tiempo de diseño ya configuras el formato de cada campo.

No se si es lo que buscas, y/o si yo entendí mal, me gustaría que nos expliques mejor tu caso.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 14-10-2008
Avatar de Cannabis
Cannabis Cannabis is offline
Miembro
 
Registrado: jun 2007
Posts: 170
Poder: 17
Cannabis Va por buen camino
Gracia por tu interés Delphius.

Cita:
Empezado por Delphius Ver Mensaje
.....
¿A que te refieres a que el usuario cambia el orden de los datos?
Al abrir la Form en donde se encuentra el DBGrid se ejecuta el query: SELECT........
La última línea del query es: ORDER BY........

Cuando el usuario cambia el orden de las columnas del dbgrid, el query se ordena según el orden establecido.
En el evento OnColumnMoved:
Código Delphi [-]
procedure Tform1.dbgridColumnMoved(Sender: TObject;   FromIndex, ToIndex: Integer);
var
  s_Cuerda: String;   
  i_Contador: Byte;

begin
  
  s_Cuerda:= '';
  for i_Contador:= 0 to (dbgrid.Columns.Count - 1) do
  begin
    if dbgrid.Columns[i_Contador].FieldName <> '' then
      s_Cuerda:= s_Cuerda + dbgrid.Columns.Items[i_Contador].FieldName + ',';   
  end;
  s_Cuerda:= Copy(s_Cuerda,0,Length(s_Cuerda) - 1);    query.Close;   

  query.SQL.Delete(query.SQL.Count - 1);
  query.SQL.Add('ORDER BY ' + s_Cuerda);
  query.Open;   
  (query.FieldByName('Fecha') AS TDateTimeField).DisplayFormat:= 'dd/mmm/yyyy';
  (query.FieldByName('Importe') AS TFloatField).DisplayFormat:= ',0.00';  

end;

En conclusión: cada vez que se abre el query debo especificar nuevamente el formato de los campos. Si no lo hago, los campos pierden el formato.

Espero haber sido claro con mi duda.

Gracias de nuevo.

Salud.

Última edición por Cannabis fecha: 14-10-2008 a las 16:28:18.
Responder Con Cita
  #4  
Antiguo 14-10-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hasta donde llego a entender de esta duda, me parece que ése es el comportamiento esperado. Cada vez que se ejecuta la consulta, el componente Query crea on-the-fly, los componentes TField adecuados y por ello hay que volver a establecer ese tipo de propiedades. Esto lo podrías evitar usando campos persistentes, es decir, mediante el editor de campos de tu Query. De esa forma, los campos TField quedan ya fijos y no vuelven a crearse en cada ejecución de la consulta.

// Saludos
Responder Con Cita
  #5  
Antiguo 14-10-2008
Avatar de Cannabis
Cannabis Cannabis is offline
Miembro
 
Registrado: jun 2007
Posts: 170
Poder: 17
Cannabis Va por buen camino
Creo el query en runtime, así que seguiré especificando el formato cada vez que ejecute el query.

Se agradece la ayuda de ambos maestros.


Salud.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Formato de campos GustavoCruz SQL 7 28-03-2008 00:00:41
agregar un campo productos de dos campos dentro de la tabal Yun-i SQL 2 01-03-2008 02:00:51
Formato de porcentajes para campos FelipeDiaz Conexión con bases de datos 7 30-11-2007 21:19:49
Multiplicacion de dos campos dentro de un order by... mcalmanovici SQL 5 31-01-2007 18:21:07
Dar formato a un trozo de texto dentro de un dbrichedit johurgi Varios 3 06-11-2006 13:08:04


La franja horaria es GMT +2. Ahora son las 17:34:29.


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
Copyright 1996-2007 Club Delphi