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 17-06-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Talking tipos de datos...cual escojo ?

Hola foro...

tengo una pequeña duda con respecto a como elegir el tipo de campo adecuado para almacenar los datos... específicamente los numéricos...

les cuento....

tengo que almacenar datos numericos tales como

125,75
7254254.86

en un principio escogi los campos tipo float, pero no me deja especificar que los necesito con 2 decimales ???

y con el tipo de campo numerico... como utilizo el formato

por ejemplo cuando digo
Código Delphi [-]
 "Dor_Valor_Total" NUMERIC (7, 2) NOT NULL);
que significa esto ??? que la parte entera es de longitud 7 y la decimal es de 2???? o significa que el dato tiene una longitud de 7 pero que dos caracteres son decimales ???

y lo otro... como lo traspaso desde delphi para almacenarlo ???

generalmente utilizo esta forma de trapaso.. pero no se como hacerlo con el campo numeric

Código Delphi [-]
     IBQ_Edit.Params[7].AsInteger  := StrToInt(vTot_Net.Text);  // cuando el campo es integer
     IBQ_Edit.Params[8].AsFloat     := StrToFloat(vTot_Iva.Text); // cuando el campo es float

espero me puedan ayudar.. gracias
__________________
BlueSteel
Responder Con Cita
  #2  
Antiguo 19-06-2006
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Hola

Hola

Cuando utilizas un campo Numeric (7,2), te va a indicar un Campo que tiene 4 digitos enteros, un separador decimal y 2 valores decimales.
Para el traspaso de los datos prueba utilizar la opcion .value.
Ejem
IBQ_Edit.Params[7].Value:= X; el campo tomará el valor que tiene predeterminado como tipo y te mostrará error si asignas una variable que no corresponda.
Responder Con Cita
  #3  
Antiguo 19-06-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cita:
Empezado por nemesio
Hola
Cuando utilizas un campo Numeric (7,2), te va a indicar un Campo que tiene 4 digitos enteros, un separador decimal y 2 valores decimales
gracias... pero en un campo use el Numeric(10,2), y si es como tu lo dices... por que me acepta una cadema de 15 digitos para el entero, la coma y 2 decimales ?? Ej. 123456789012345,75

Cita:
Para el traspaso de los datos prueba utilizar la opcion .value.
Ejem IBQ_Edit.Params[7].Value:= X; el campo tomará el valor que tiene predeterminado como tipo y te mostrará error si asignas una variable que no corresponda.
pero si el valor que le quiero asignar esta en un Edit.Text.. como transformo esa cadena de numeros a un dato tipo numeric ???
__________________
BlueSteel
Responder Con Cita
  #4  
Antiguo 19-06-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
posiblemente sea asi:
Código Delphi [-]
IBQ_Edit.Params[7].Value:=StrToFloat(edit.text);

saludos.
Responder Con Cita
  #5  
Antiguo 20-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Te aconsejo que uses Numeric(10,2) y Dialecto 3, ya que en ese formato se guardan los números como Int64 de Delphi. Si miras la documentación de Interbase, verás que un Float se guarda siempre como números enteros, tanto para la parte entera, como la parte decimal.

De hecho, si usas Numeric(7,2) (creo recordar que en cualquier Dialecto), los números flotantes se guardan con distinta precisión, y advierte que no se use para cálculos monetarios.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 21-06-2006
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Para que te quites los dolores de Cabeza de pasar un texto a número, puedes usar el Currencyedit de la libreria Developer Express, te lo recomiendo, tiene una propiedad que es .value para los datos numéricos. Ademas te da la opción de escoger entre el tipo numerico que quieras. Ya no tendrías que hacer mas conversiones sino que colocas: SQLCampo.Value:=Edit.Value;
Responder Con Cita
  #7  
Antiguo 27-06-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cita:
Empezado por nemesio
Para que te quites los dolores de Cabeza de pasar un texto a número, puedes usar el Currencyedit de la libreria Developer Express, te lo recomiendo, tiene una propiedad que es .value para los datos numéricos. Ademas te da la opción de escoger entre el tipo numerico que quieras. Ya no tendrías que hacer mas conversiones sino que colocas: SQLCampo.Value:=Edit.Value;
y como tendria que hacerlo... donde consigo esta librería ???
__________________
BlueSteel
Responder Con Cita
  #8  
Antiguo 04-07-2006
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Esa librería es Paga, pero muy completa. Si quieres entra a la página http://www.devexpress.com/ y verás lo que ofrece esta librería.
Responder Con Cita
  #9  
Antiguo 04-07-2006
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Ahh se me olvidaba decirte que las Jedi que son gratis también tienen un componente para "currency" que te permiten capturar numeros sin complicaciones.
Responder Con Cita
  #10  
Antiguo 23-05-2008
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Si me permitis. Necesito meterun campo con decimales a razon de 2 enteros y 7 decimales, entonces lo pongo asi numeric(10,7) tal y como se comenta en el foro, asi tengo 2 enteros, la coma decimal y 7 decimales, pero a la hora de meterlo al sql se empeña en poner(18,7), imagino que es porque al ser un float con decimales me pone el maximo entero, es decir, 10, pero no necesito tanto entero, alguna forma de arreglarlo para evitar ocupar memoria o es asi?

gracias
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
Ayuda con tipos de datos Luli Varios 12 15-05-2005 05:56:13
Cual escojo para hacer infomes istradlin Impresión 4 25-04-2005 20:20:02
Auxilio....Tipos de datos buitrago Firebird e Interbase 0 07-09-2004 00:51:20
Reto Para Expertos En Base De Datos Y Tipos De Datos.... (blob) frankmch Conexión con bases de datos 2 08-09-2003 19:44:52
unixodbc y tipos de datos atmegabyte Conexión con bases de datos 0 04-07-2003 02:40:35


La franja horaria es GMT +2. Ahora son las 02:33:12.


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