Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Cita:
Empezado por InterBase Data Definition Guide.pdf
When you create a domain or column with a NUMERIC or DECIMAL datatype, InterBase
determines which datatype to use for internal storage based on the precision and scale
that you specify and the dialect of the database.

NUMERIC and DECIMAL datatypes that are declared without either precision or scale are
stored as INTEGER.

Defined with precision, with or without scale, they are stored as SMALLINT, INTEGER,
DOUBLE PRECISION or 64-bit integer. Storage type depends on both the precision and the
dialect of the database. Table 4.2 describes these relationships.
Código:
Precision 	Dialect 1 				Dialect 3
1 to 4		SMALLINT for NUMERIC datatypes		SMALLINT
		INTEGER for DECIMAL datatypes

5 to 9 		INTEGER 				INTEGER
10 to 18 	DOUBLE PRECISION 			INT64
NUMERIC and DECIMAL datatypes with precision greater than 10 always produce an error
when you create a dialect 2 database. This forces you to examine each instance during a
migration. For more about migrating exact numerics, see “Migrating databases with
NUMERIC and DECIMAL datatypes” on page 67.
Al guardarse en dialecto 1 con 15 de precisión, estás usando el double precision, no apto para valores monetarios.

jhonny: no he hecho pruebas, pero quizás el problema continúe por no realizar una correcta migración de datos. Ya digo, en tu caso particular no tengo ni idea.


Lamentablemente, la ignorancia es así, criticamos por desconocimiento y arrogantemente.

PD: Ese libro es gratuito y descargable desde www.ibphoenix.com

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 04-12-2007 a las 18:00:36.
Responder Con Cita
  #2  
Antiguo 04-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Y vamos a la página 67 para una correcta migración de los datos:
Cita:
Empezado por datadef.pdf
1. Back up your original database. Read the “migration” chapter in Getting
Started to determine what preparations you need to make before migrating
the database. Typically, this includes detecting metadata that uses double
quotes around strings. After making necessary preparations, back up the
database using its current GBAK version and restore it using InterBase 6.
2. Use gfix -set_db_SQL_dialect 3 to change the database to dialect 3
3. Use the ALTER COLUMN clause of the ALTER DATABASE statement to change the
name of each affected column to something different from its original name.
If column position is going to be an issue with any of your clients, use ALTER
COLUMN to change the positions as well.
4. Create a new column for each one that you are migrating. Use the original
column names and if necessary, positions. Declare each one as a DECIMAL or
NUMERIC with precision greater than 9
.
5. Use UPDATE to copy the data from each old column to its corresponding new
column:
UPDATE tablename
SET new_col_name = old_col_name;
6. Check that your data has been successfully copied to the new columns and
drop the old columns.
Note If you are migrating exact numeric columns to a dialect 1 database in InterBase 6,
no special steps are needed. A dialect 1 database in InterBase 6 behaves just like an
InterBase 5 database. Dialect 1 is an old standard, however, and will eventually not be
supported by InterBase.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 04-12-2007 a las 17:58:54.
Responder Con Cita
  #3  
Antiguo 04-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
jhonny: una pregunta, ¿Qué componentes usas para conectar a Firebird? Yo uso los MDO y me crea los campos persistentes como TBCDFields (Binay Coded Decimal) que es el representante sin pérdida de decimales.

Si en Delphi usas aún TFloatFields, vendría por ahí el fallo de guardar mal los decimales (supongo).

Ya digo, Firebird 1.5 en dialecto 3 con numeric(10,2) + MDOLIB = números correctos en los DBEdits, en Base de Datos "espulgada" con IB Expert y en los cálculos entre varios campos de tipo BCD.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 04-12-2007
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 531
Poder: 24
IVAND Va por buen camino
Gracias amigo Jonny entonces tu tesis es que migrando a dialecto 3 estos problemas desaparecen o al menos se minimizan , no has encontrado otra manera de hacerlo pues me va a ocurrir lo mismo que a ti , pero bueno ahi le vamos a dar ,

Nota :Lamentablemente, la ignorancia es así, criticamos por desconocimiento y arrogantemente. Sr. Lepe , todos somos ignorantes , si no pregunto seguiria en mi ignorancia, no lo hago de manera arrogante ni mucho menos simplemente es por mi ignorancia y desconocimiento pero igual gracias por su ayuda
__________________
IVAND
Responder Con Cita
  #5  
Antiguo 04-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Cita:
Empezado por IVAND Ver Mensaje
Sr. Lepe , todos somos ignorantes , si no pregunto seguiria en mi ignorancia, no lo hago de manera arrogante ni mucho menos simplemente es por mi ignorancia y desconocimiento pero igual gracias por su ayuda
Estoy de acuerdo en todo lo que has dicho. Cuando dije "arrogantemente" me refería en general, al ser humano de hoy día, de verdad que no pensaba en tí concretamente, bueno quizás pensaba en jhonny ]:-D.

OFFTOPIC: no sé por qué, pero hoy tengo ganas de "guerra sana" .

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 04-12-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.070
Poder: 32
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Lepe Ver Mensaje
Estoy de acuerdo en todo lo que has dicho. Cuando dije "arrogantemente" me refería en general, al ser humano de hoy día, de verdad que no pensaba en tí concretamente, bueno quizás pensaba en jhonny ]:-D.
Ahhh si?, Pues vamos pal Ring .

En cuanto a los conectores a base de datos de ese proyecto debo contarte que son los BDE, es un proyecto plagado de BDE por lo que nos a dado real y sincera pereza cambiar toda esa cosa mal diseñada por otra (Me refiero al aplicativo, ya que tiene conectores en casi todos los formularios ). De hecho hemos pensado en arrancar un nuevo proyecto mejor diseñado, con un modelo veridico y con conectores distintos (Y que sean faciles de cambiar), pero antes teniamos que arreglar este problema de los centavos, el problema ahora es que el BDE no acepta tipos Numeric cuando la BD esta en Dialecto3, por lo que ensayamos con el Double Precision y el efecto es el que mencione anteriormente minimizando en gran manera el problema, aunque la verdad es que no sabia lo de los BCD ya que es otro Tip a tener en cuenta para el nuevo proyecto, Gracias Lepe .

En cuanto a exportar los datos, pues me parece que esa es una tecnica valida y que tambien tiene derecho a ser probada .

Por otro lado, debo confesarles que hubo un tiempo donde estuve tan desanimado como IVAND de Firebird, pero luego de leer este tipo de cosas, hacer las mil y una pruebas con Dialecto3 (Y eso que todavia faltan mas pruebas), me he vuelto a animar... ademas por la futura versión 2.1 que tiene muchas cosas super-interesantes .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 04-12-2007 a las 19:23:15.
Responder Con Cita
  #7  
Antiguo 04-12-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
Cita:
Empezado por jhonny Ver Mensaje
Ahhh si?, Pues vamos pal Ring .
Me avisas para ir encendiendo las luces...
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 04-12-2007
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.087
Poder: 20
juanelo Va por buen camino
Cita:
Empezado por IVAND Ver Mensaje
Nota :Lamentablemente, la ignorancia es así, criticamos por desconocimiento y arrogantemente. Sr. Lepe , todos somos ignorantes , si no pregunto seguiria en mi ignorancia, no lo hago de manera arrogante ni mucho menos simplemente es por mi ignorancia y desconocimiento pero igual gracias por su ayuda
Que tal,
En lo que no estoy de acuerdo es en el titulo de tu hilo :

"El uso de firebird como una base seria no es tan correcto"

Ya que aqui efectivamente estas pecando de arrogancia, ya que te crees con la suficiente "autoridad" o "conocimiento" para poder hacer esa aseveración, cuando mas de 2.500.000 de personas han descargado firebird y ademas de ser nombrado el proyecto del mes por sourceforge no creo que sea por ser una base de datos "broma" (o no tan seria como afirmas).

El hecho que te esté dando problemas lo atribuyo a tu falta de conocimiento y no a la base de datos en si.

Saludos
Responder Con Cita
  #9  
Antiguo 04-12-2007
Avatar de RolphyReyes
RolphyReyes RolphyReyes is offline
Miembro
 
Registrado: ago 2004
Ubicación: Santo Domingo
Posts: 285
Poder: 23
RolphyReyes Va por buen camino
Angry

Estoy de acuerdo con juanelo, el hecho de que tengas problemas no necesariamente tiene que ser la BD sino la falta de informacion de como manejarla.

Si fuese asi FireBird no estaria donde esta y ademas las grandes compañias que la han utilizado (o siguen utilizandola) no se harian de mencion.

Antes de formular algun tipo de comentario sobre algo trata de tener mas informacion sobre el mismo.
__________________
Gracias,
Rolphy Reyes
Responder Con Cita
  #10  
Antiguo 04-12-2007
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 531
Poder: 24
IVAND Va por buen camino
Gracias Lepe por tu aclaracion , yo tambien aclaro lo siguiente no es que uno se cree con la autoridad ni nada de eso, lo del titulo es solo una pregunta de una persona que se encuentra con un problema para mi muy dificil de tratar , aqui nadie es una total autoridad se supone que es un foro para preguntar algo y eso

Si mi titulo les parecio algo duro pues mil disculpas pero repito es solo una pregunta no una aseveracion
Gracias por entender

Bueno cambiare a dialecto 3 y veremos como nos va pues creo que ese sera el mejor camino
__________________
IVAND
Responder Con Cita
  #11  
Antiguo 04-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Hombre, "gracias al título" no ha pasado desapercibido el hilo .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #12  
Antiguo 05-12-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola a todos!

Cita:
Empezado por IVAND Ver Mensaje
...pero repito es solo una pregunta no una aseveracion...
Bueno, entonces que algún moderador corrija el título y le ponga los signos de interrogación que toda pregunta lleva.

Aunque, siendo justos, creo que quedaría mejor el título Raro almacenamiento de decimales en Firebird.

Un abrazo serio y políticamente correcto.

Al González.
Responder Con Cita
  #13  
Antiguo 05-12-2007
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.679
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Después de más de 10 años usando interbase->firebird... me parece muy seria


P.d. para usar valores con decimales siempre uso double.
Responder Con Cita
  #14  
Antiguo 05-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
P.d. para usar valores con decimales siempre uso double.
Interesante casimiro, ¿realizas algún tipo de redondeo? ¿en delphi asignas al campo Currency:= true?

Me deja intrigado tu afirmación.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
cual seria el costo de iniciar firebird desde cero gmontes La Taberna 3 15-05-2007 00:58:13
Como conectarme a una base de datos hecha en firebird? JuanErasmo .NET 5 30-12-2006 18:13:03
Firebird, ¿he hecho lo correcto? kovaski Firebird e Interbase 4 03-10-2006 21:18:17
cual seria el componente correcto? DM2005 Varios 0 04-07-2006 21:55:39
cual seria la mas adecuado base de datos... ronimaxh Firebird e Interbase 8 23-04-2004 17:47:15


La franja horaria es GMT +2. Ahora son las 15:28:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi