PDA

Ver la Versión Completa : Se come los decimales el DBGRID


cisterpe
17-09-2003, 13:03:11
Pues eso que tengo problemas con el dbgrid de 1 base de datos

Siendo el valor 0,25 o 0,5 siempre me saca 0 en el dbgrid.

Tambien tengo el mismo problema para garbar ya que en el edit le pongo 0,25 y en la base de datos queda grabado 0

He visto este hilo en el foro

http://www.clubdelphi.com/foros/showthread.php?s=&threadid=2824&highlight=decimales

pero no encuentro el "displayformat" del que en el hablan :confused:

__cadetill
17-09-2003, 13:47:00
El campo de tu tabla tiene formato decimal?

El DisplayFormat es una propiedad de los TFields, es decir, de los campos persistentes de una tabla. Para verlos (añadirlos / modificarlos), haz doble clic encima de tu Dataset. Esto hará que te aparezca una pantallita. Clica con el botón derecho y selecciona Add All Fields. Se añadirán todos los campos de tu tabla y, seleccionando uno de ellos, verás sus propiedades y, entre ellas, está el DisplayFormat

cisterpe
17-09-2003, 14:08:47
En la base de datos tengo: ->"HACIENDA" NUMERIC (3,2)

Y he puesto ahora en DisplayFormat

0.## -> solo el numero sin decimales
#.##-> solo los mayores de 1 y enteros
0.00 -> los que tienen 0 no salen pero aunque sea 0,25

Hoy estoy un poco mas torpe de lo normal
:rolleyes:

__cadetill
17-09-2003, 15:38:22
dices que en la tabla ya se está grabando sin decimales... no estarás haciendo algo como....

Tabla.FieldByName('mi campo').AsInteger := mi_numero;

cisterpe
17-09-2003, 17:40:20
En interbase abro la tabla y me aparece cuando cree la tabla unos valores introducidos via SQL y me aparece 0,25

Cuando abro la tabla via DGBRID me da valor 0.

Para introducir datos hago


objetos['HACIENDA']:= edit1.text;

donde objetos es el nombre de Dataset (Ttable) :rolleyes:


Esto me habia funcionado siempre :confused:, eso si siempre con enteros y texto :rolleyes:

__cadetill
17-09-2003, 18:26:30
chico, te pasan cosas muy raras :D

(era broma, claro)

veamos. Si tu pegas en un form un TIBDataset, un TIBTransaction, un TIBTable, un TDataSource y un TDbGrid (y los unes entre si sin hacer nada más y activas el TIBTable), se te ven los datos bien?

Otra pregunta. Qué componentes utilizas (BDE, IBX, DBX,...)?

Porque el TDbGrid no se come los decimales así porque si :confused:

cisterpe
17-09-2003, 19:49:22
Soy un chapuzas. Se nota demasiado que soy un novato de cuidao :D

Yo tengo 1 Tdatasource, 1 Ttable y 1Tdbgrid y ya ta y con esto solo ya el Tdbgrid se come los decimales :D


:rolleyes: :rolleyes:

__cadetill
17-09-2003, 20:40:33
eso quiere decir que accedes a Interbase mediante BDE. No será problema de configuración de éste?? Revisatela a ver (creo recordar que es en Configuration - System - Format)

cisterpe
23-09-2003, 10:45:56
Perdon he estado unos dias fuera...


No acabo de entender tu ultima respuesta :o

me dices que es posible que sea problema de configuracion, de la BDE?


Y no se donde encontrar la opcion que me pones :confused:


Gracias

cisterpe
23-09-2003, 11:10:59
Bueno creo que he encontrado lo que me decias...


BDE Administrador -> Configuration -> system -> formats

Decimaldigits -> 2
Decimalseparator -> .
Leadingzeron ->TRUE
thousandseparator -> ,

No tengo ni idea de cual seria la opcion correcta.

En interbase las consultas al ser SQL los valores quizas son al reves o sea :

Separador para decimal "," y para miles el "."

Luego lo mirare, por si acaso lo voy posteando.

Gracias


;)

__cadetill
23-09-2003, 11:11:57
Hola

El administrador del BDE lo tienes en el panel de control o bien en Inicio-Programas-Borland Delphi x-BDE Administrator

Dentro del Administrador del BDE, en la derecha tienes 2 pestañas (Databases y Configuration). Ves a la de Configuration y mirate que hay en Configuration-System-Formats-Number-DecimalsDigits

cisterpe
23-09-2003, 11:21:16
creo que hemos posteado los 2 al mismo tiempo :D

__cadetill
23-09-2003, 11:26:25
Pues sí, lo hemos hecho los dos al mismo tiempo :p

Respecto a la configuración que tienes, tiene toda la pinta de que el separador decimal y el de millares tengan que estar invertidos como bien comentas

Pruebalo y nos cuentas

cisterpe
23-09-2003, 11:43:52
Probado y todo igual

Valor 0,25 en la base de datos

si pongo 0.## me sale 0
si pongo 0,## me sale 000


:confused:

__cadetill
23-09-2003, 11:59:47
Pues ya no se me ocurre nada más :(

Seguramente será alguna tontería, pero ya no se cual puede ser :(

Si se me ocurre algo más, te lo comento

cisterpe
23-09-2003, 16:03:21
habria alguna otra manera de conectar a la base de datos???

Por provar a ver si es fallo de la base de datos o de la conexion :confused:

Lepe
23-09-2003, 18:30:56
Hola, con permiso de los presentes.... ;)


objetos['HACIENDA']:= edit1.text;

a mi me gusta mas hacer:
objetosHacienda.asfloat := strtofloat(edit1.text)
así accedes al campo persistente directamente.

en cuanto a lo del separador decimal, mira este mensaje anterior
dichoso separador decimal (http://www.clubdelphi.com/foros/showthread.php?s=&threadid=1463)

Espero haber ayudado en lugar de confundir más ;)

Saludos

cisterpe
24-09-2003, 09:45:59
Gracias Lepe, supongo que me servira para cuando intente grabar, de momento estoy todavia intentando leer los datos correctamente :D

En cuanto al hilo lo tengo que leer mas detenidamente ya que soy un novato de cuidao :rolleyes:

cisterpe
24-09-2003, 19:31:27
Lo he hecho 1 poco siguiendo un libro y no se si esta bien.

He conectado a la base de datos con:

IBtable
IBdatabase
IBtransaction
Datasource
DBgrid

Nuna habia hecho esto. pero al menos con esto en el dbgrid me sale con decimales.

preguntas:

¿Esta bien lo que he hecho?
¿Es mejor con estos IB que con los BDE convencionales?
¿Se opera de forma distinta?


Gracias :(