FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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; 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 |
#2
|
||||
|
||||
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 |
#3
|
|||
|
|||
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.
|
#4
|
|||
|
|||
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? |
#5
|
|||
|
|||
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'; |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
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 |
|