Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-06-2012
Aurepilo Aurepilo is offline
Miembro
 
Registrado: may 2010
Posts: 18
Poder: 0
Aurepilo Va por buen camino
DBGRID muestra cosas distintas de la tabla

Buenas tardes, os comento:

Trabajo con adoquerys y dbgrid. Primero introduzco una serie de datos en la base de datos access sin problema. Si accedo a la base de datos se ven correctamente. Luego intento reflejarlos en el DBGRID de la siguiente manera:

Código:
dbgrid1.Enabled := false;
dbgrid1.datasource := Datasource1;
datasource1.Enabled := false;
DataSource1.DataSet := ADOQuery3;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add('SELECT IMPORTE, NOMBRE, FECHA FROM '+taula);
ADOQuery3.open;
Importe es un campo currency, Nombre es un campo text, fecha es un campo date. Pues bien

1. En la base de datos el importe es igual que en el dbgrid, funciona correctametne
2. en la fecha, el dbgrid me la pone a la inglesa, es decir mm/dd/aaaa pero la base de datos (que es como me gustaria a mi que saliera) lo tengo en dd/mm/aaaa
3. El nombre que es, por poner un ejemplo, 'Manolo', está correctamente en la base de datos pero en el dbgrid me dice que (WIDEMEMO)

Como puedo solucionarlo?

Gracias
Responder Con Cita
  #2  
Antiguo 20-06-2012
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
Una fecha se guarda en la base de datos como un número real y es el manejador quien escoge el formato. En tu aplicación puedes usar la propiedad DisplayFormat del TDateTimeField asociado a tu campo Fecha, para que te muestre el dato en el formato deseado.

¿Cuál es el tipo de datos en Access que tienes para el campo nombre?

// Saludos
Responder Con Cita
  #3  
Antiguo 20-06-2012
Aurepilo Aurepilo is offline
Miembro
 
Registrado: may 2010
Posts: 18
Poder: 0
Aurepilo Va por buen camino
Bueno... he estado trasteando y creo que, como minimo el tema del nombre, tiene que ver con la forma de crear los campos... es una tabla que se crea de forma dinamica y el campo en cuestion que me da problemas lo creo como 'text'; Sin embargo, si lo intento crear como 'string' o como "char" me da más problemas aún, porque inexplicablemente el campo ocupa entonces todo el dbgrid y el resto de campos desaparecen.
Responder Con Cita
  #4  
Antiguo 20-06-2012
Aurepilo Aurepilo is offline
Miembro
 
Registrado: may 2010
Posts: 18
Poder: 0
Aurepilo Va por buen camino
Roman, ahora veo tu comentario. Como he dicho el nombre lo creo como text porque cualquier otro formato me da problemas... habia intentado hacerlo como char(x) pero entonces cuando intento recuperar los datos me da un resultado con tatos espacios en blanco como numeros falten para llegar a la x. Es decir, si es un campo char(10) y guardo el dato 'Manolo' me da 'Manolo____' (los _ son espacios en blanco). Esto es un problema, porque si luego tengo que comprar este dato con otra variable local, siempre me da negativo.

En cuanto a la fecha, ¿como eligo el formato si lo que hago es pasarlo a un dbgrid? Es decir... si lo pasara a una variable supongo que fieldbyname, etc. pero ¿como se elige el formato al pasar la fecha a una celda de Dbgrid?
Responder Con Cita
  #5  
Antiguo 21-06-2012
Aurepilo Aurepilo is offline
Miembro
 
Registrado: may 2010
Posts: 18
Poder: 0
Aurepilo Va por buen camino
Bueno, ya lo he solucionado... aunque no sé si de forma muy ortdoxa. Dejo la solución aqui:

Para establecer el formato datetime directamente en la celda del dbgrid:

Código:
If AnsiCompareText(Field.DisplayName, 'Fecha') = 0   then  TDateTimeField(Field).DisplayFormat:= 'dd/mm/yyyy';
Por otro lado, al crear la tabla he establecido el campo de texto como char(13) y despues para recuperar el valor uso Trim, que me elimina los espacios en blanco.
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
No muestra Campo Blob en mi DBGrid ingabraham Varios 2 23-03-2010 13:50:16
Query no muestra columna en DBGRID odrack SQL 4 18-03-2010 17:54:25
DBGrid no me muestra los datos del query drykea Conexión con bases de datos 5 28-06-2007 11:53:19
RARISIMO mismo codigo cosas distintas no modifica campo TEXTO Patricio Conexión con bases de datos 1 10-08-2005 21:29:53
Problema con un dbgrid, no muestra los datos Angy Conexión con bases de datos 1 20-05-2004 07:48:24


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


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