Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-02-2012
Avatar de elaguna
elaguna elaguna is offline
Miembro
 
Registrado: abr 2009
Ubicación: México
Posts: 51
Poder: 16
elaguna Va por buen camino
TTable - Enteros positivos no se muestran correctamente

Qué tal, saludos a todos.

Tengo una tabla DBF con 3,600,000 registros aproximadamente, me solicitan un programa que se ejecute desde CD (es decir que no se tenga que instalar nada) para realizar consultas a esos registros.

No me quedo con la tabla DBF porque habría que distribuir e instalar el BDE; entonces estoy en el proceso de pasar todos los datos a Firebird. Hasta ahí todo parecía ir bien pero...

Para pasar los datos estoy usando TTable para manejar DBF y para guardar los registros en Firebird IBQuery. Al ejecutar el programa al llegar al IBQuery1.ExecSQL me sale el mensaje:

Cita:
'Dynamic SQL Error SQL error code = -303 arithmetic exception, numeric overflow, or string truncation'
Revisé los valores de los campos que estoy pasando y es cuando me doy cuenta que la tabla DBF en los valores enteros me muestra negativos, ejemplo: el número 9, en la tabla lo pone como -1996488704.

Esta misma tabla si la visualizo con Foxpro o con DBF Manager me muestra (y maneja) correctamente los valores enteros.

¿Habrá alguna propiedad para que me muestre los valores correctos?

De antemano muchas gracias.



Eduardo Laguna
__________________
No lo intentes!. Hazlo o no lo hagas, pero no lo intentes !!! (Yoda)
Responder Con Cita
  #2  
Antiguo 15-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por elaguna Ver Mensaje
la tabla DBF en los valores enteros me muestra negativos, ejemplo: el número 9, en la tabla lo pone como -1996488704.
¿Seguro que 9 lo almacena como -1996488704 ?
Responder Con Cita
  #3  
Antiguo 15-02-2012
Avatar de elaguna
elaguna elaguna is offline
Miembro
 
Registrado: abr 2009
Ubicación: México
Posts: 51
Poder: 16
elaguna Va por buen camino
Qué tal. Gracias por responder.

No. Precisamente ese es el problema.

Si visualizo la tabla con Foxpro o con DBF Manager los datos están bien (el 9 es 9).

Coloqué un DBGrid para visualizar los datos de la misma tabla y efectivamente, en Delphi los enteros se muestran como ya lo mencioné (negativos).

En la tabla el campo ENT_FED es el entero, los demás son texto.

No estoy agregando datos a la tabla DBF, lo que quiero es leerlos para pasarlos a Firebird.

Utilizo Delphi XE.

Gracias por contestar.


Eduardo Laguna.
Imágenes Adjuntas
Tipo de Archivo: png TTable_Delphi.png (5,9 KB, 11 visitas)
Tipo de Archivo: png Tabla_DBFManager.png (5,5 KB, 11 visitas)
__________________
No lo intentes!. Hazlo o no lo hagas, pero no lo intentes !!! (Yoda)
Responder Con Cita
  #4  
Antiguo 15-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y con qué conectas a la tabla dbf desde delphi?
¿De qué tipo de campo lo has puesto en firebird?


Acabo de probar con una pequeña dbf que tengo por aquí y sale correctamente :s


Edito, veo que con BDE, usa otra cosa, ya verás como se soluciona.
Responder Con Cita
  #5  
Antiguo 15-02-2012
Avatar de elaguna
elaguna elaguna is offline
Miembro
 
Registrado: abr 2009
Ubicación: México
Posts: 51
Poder: 16
elaguna Va por buen camino
Lo estoy conectando con TTable del BDE.

Código Delphi [-]
DataSource1.DataSet := Table1;

Table1.DatabaseName := 'Z:\QRYCRM\';
Table1.TableName := 'crm_2.dbf';
Table1.Active := True;

dbGrid1.DataSource := DataSource1;

En Firebird el campo es Smallint, pero todavía no hago el paso de los datos. Las dos imágenes que subí son de la misma tabla visualizado en Delphi y DBF Manager.

Gracias.


Eduardo Laguna.
__________________
No lo intentes!. Hazlo o no lo hagas, pero no lo intentes !!! (Yoda)
Responder Con Cita
  #6  
Antiguo 15-02-2012
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues algo raro está pasando, porque yo he hecho algo similar hace poco, aunque solamente eran 4.000 registros y no he tenido ningún problema.

un saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 16-02-2012
Avatar de elaguna
elaguna elaguna is offline
Miembro
 
Registrado: abr 2009
Ubicación: México
Posts: 51
Poder: 16
elaguna Va por buen camino
Pues no dí con el problema, a mí también me parece bastante raro.

En este momento estoy "dándole un vuelta a los datos" pasando toda la tabla a Postgres, cuando termine haré de nuevo el intento hacia FireBird (ahora desde Postgres), espero que al ya no tener que usar el BDE no haya problema.

Muchas gracias a todos, en cuanto termine el proceso de "migración" les platico como me fué.

Saludos.


Eduardo Laguna
__________________
No lo intentes!. Hazlo o no lo hagas, pero no lo intentes !!! (Yoda)
Responder Con Cita
  #8  
Antiguo 17-02-2012
Avatar de elaguna
elaguna elaguna is offline
Miembro
 
Registrado: abr 2009
Ubicación: México
Posts: 51
Poder: 16
elaguna Va por buen camino
Pues después de algunos días parece que todo va bien.

En este momento Firebird me marcan 1,603,693 registros almacenados y contando.

No sé si haya sido la solución más elegante o eficiente pero, en estos momentos de desesperación, es la que funciona.

El BDE no mostró nunca los registros correctamente, no tengo idea del por qué, pero el asunto estuvo así:
  • Llegan a mí 4 archivos de Excel 2010 con los datos (3,384,741 registros en total)
  • Me piden que pase los datos a DBF porque así es como los van a consultar en otro sistema.
  • Me solicitan un programa que les permita realizar consultas, pero que no haya necesidad de instalar nada, y ahí es donde comienza este post.
Entonces el "caminito":
  1. De Excel a DBF
  2. De DBF a Postgres
  3. De Postgres a Firebird
Y ahora en cuanto termine la migración, solo quedará hacer las consultas. ¡Ya casi...!


Saludos a todos y gracias.




Eduardo Laguna.
__________________
No lo intentes!. Hazlo o no lo hagas, pero no lo intentes !!! (Yoda)
Responder Con Cita
  #9  
Antiguo 17-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
  1. De Excel a DBF
  2. De DBF a Postgres
  3. De Postgres a Firebird
Me alegro de que te funcione, aunque no entiendo tantas vueltas, tan sólo debías de no usar el obsoleto BDE y usar otra cosa
Responder Con Cita
  #10  
Antiguo 18-02-2012
Avatar de elaguna
elaguna elaguna is offline
Miembro
 
Registrado: abr 2009
Ubicación: México
Posts: 51
Poder: 16
elaguna Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Me alegro de que te funcione, aunque no entiendo tantas vueltas, tan sólo debías de no usar el obsoleto BDE y usar otra cosa
Pues yo creo que fue la emoción de saber qué se sentía manejar semejante cantidad de datos por varios caminos.

Ya, en serio.

Lo que pasa es que, cada vez que quería utilizar otro componente para el manejo de DBF (que no fuera BDE), me mandaba errores de que no podía abrir la DB (aunque era tabla libre), en otra ocasión me marcó error en el archivo de índice y ni siquiera lo tenía, y cosas por el estilo; entonces decidí irme a mi viejo Foxpro y pues... por eso tanta vuelta.

La otra opción era abrir directamente los archivos de Excel con ADO, pero resulta que por aquello del registro 1,311,514 encuentro campos con caracteres inválidos (saltos de línea, tabuladores, ... ¡¡¡dentro del texto del campo!!!), además de otras cosas que de plano no me puse a averiguar que eran.

La última opción, que a mi parecer era la más sencilla, era utilizar aplicaciones que hay en el mercado y que me encontré por Internet, solo que para adquirirlas se necesita $$, que voy a obtener hasta que entregue la aplicación.

Pero bueno, al final obtuve algo más de experiencia (y una base de datos bastante "cargadita") para hacer otro tipo de pruebas.

Muchas gracias por tus comentarios.


Eduardo Laguna.
__________________
No lo intentes!. Hazlo o no lo hagas, pero no lo intentes !!! (Yoda)
Responder Con Cita
  #11  
Antiguo 18-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, está bien si lo has podido resolver
Responder Con Cita
  #12  
Antiguo 19-02-2012
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
La cosa es que yo ataco tablas Dbf de Fox con el BDE y no me dan problemas de formato numérico, calculo que serán unos 100.000 registros, aunque la cantidad no creo que tenga influencia en este caso.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
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
Consulta en ADO devuelve todos los valores positivos Ermek Conexión con bases de datos 4 21-01-2009 11:04:32
extraer valores enteros desde un reg varchar y guardarlos en reg enteros Gabichu SQL 0 12-08-2008 18:44:36
Grid q no se muestran Oxa78 Varios 3 31-03-2008 21:16:32
Sumar por Separado Positivos y Negativos en Rave norberto_larios Impresión 1 19-08-2006 16:57:48
Numeros positivos con signo Romanosky Varios 1 11-05-2004 12:20:10


La franja horaria es GMT +2. Ahora son las 06:37:05.


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