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 30-10-2011
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Paradox hace lo que quiere

Buenas a tod@s,

tengo una aplicación, realizada con Delphi 7 y Paradox y, de vez en cuando, (no tengo ni idea de cuando ni porqué), los datos de las tablas muestran información anterior.
Por ejemplo: inserto registros en una tabla..y está todo correcto; sigo modificando el programa y haciendo pruebas y de repente....me aparecen datos antiguos, he perdido los nuevos.
Y lo más curioso, que me ha hecho tomar la decisión de pediros ayuda, es que he eliminado, a través de un botón del programa todos los registros de una tabla (uno a uno), compruebo que los grids están vacíos y cierro el programa, me salgo del entorno de desarrollo y me voy al Database Desktop, y para mi sorpresa, en las tablas estaban todos los datos. Vuelvo a abrir el proyecto lo ejecuto y han vuelto a aparecer todos los datos en los grids.
¿ Alguien me puede decir que está sucediendo?
Siempre me salgo del programa a través de un botón 'Cerrar' que pone a 'Close' todas las tablas y SQL`s.
A ver si me podéis ayudas porque he invertido muchas horas de trabajo y estoy alarmado.

Saludos
Responder Con Cita
  #2  
Antiguo 30-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Parsec.
Cita:
es que he eliminado, a través de un botón del programa todos los registros de una tabla (uno a uno), compruebo que los grids están vacíos y cierro el programa, me salgo del entorno de desarrollo y me voy al Database Desktop, y para mi sorpresa, en las tablas estaban todos los datos. Vuelvo a abrir el proyecto lo ejecuto y han vuelto a aparecer todos los datos en los grids.
A golpe de ojo, la causa de ese comportamiento pareciera ser que tenés activado CachedUpdates y no realizas ApplyUpdates al finalizar con las acciones. Aunque según he leido, a veces Paradox suele dar algunas sorpresas.

No es una sugerencia para que apliques a este proyecto por que veo que lo tenés muy avanzado, pero pegale una leida a este artículo.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 31-10-2011
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Hola Ecfisa,

antes que nada gracias por tu respuesta...si que tengo activado CachedUpdates y los ApplyUpdates los realizo correctamente, en fin......he descubierto que si hago pruebas (F9) ejecutando el proyecto desde el entorno de desarrollo puede suceder que los datos almacenados, de pronto, sean otros, pero ojo....no justo los anteriores, si no otros que hacía tiempo que los había grabado.......UN PU,TO LIO. Parece que ejecutando el exe no salen estos problemas, eso espero.
Como bien apuntas Interbase es la solución más profesional.
Utilizo Paradox para hacer programitas off-line, fuera de mi entorno de trabajo (normalmente utilizo SQL Server, Navision y otros similares).

Bueno gracias de nuevo.

Saludos
Responder Con Cita
  #4  
Antiguo 31-10-2011
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Parsec Ver Mensaje
Hola Ecfisa,

antes que nada gracias por tu respuesta...si que tengo activado CachedUpdates y los ApplyUpdates los realizo correctamente, en fin......he descubierto que si hago pruebas (F9) ejecutando el proyecto desde el entorno de desarrollo puede suceder que los datos almacenados, de pronto, sean otros, pero ojo....no justo los anteriores, si no otros que hacía tiempo que los había grabado.......UN PU,TO LIO. Parece que ejecutando el exe no salen estos problemas, eso espero.
Como bien apuntas Interbase es la solución más profesional.
Utilizo Paradox para hacer programitas off-line, fuera de mi entorno de trabajo (normalmente utilizo SQL Server, Navision y otros similares).

Bueno gracias de nuevo.

Saludos
Una pregunta, en tiempo de diseño ¿ tienes tus componentes de tablas, queries y base de datos en open, active = True ?

Saludos
Responder Con Cita
  #5  
Antiguo 31-10-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Hola.

¿Estás usando el bde para acceder a las tablas paradox?, porque en ese caso puede ser configuración del bde.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 31-10-2011
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Cita:
Una pregunta, en tiempo de diseño ¿ tienes tus componentes de tablas, queries y base de datos en open, active = True ? ¿Estás usando el bde para acceder a las tablas paradox?, porque en ese caso puede ser configuración del bde.
Hola Newtron,

si estoy utilizando BDE para acceder a Paradox y están Active=True. ¿Es este el problema?

Saludos
Responder Con Cita
  #7  
Antiguo 31-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Parsec.

Leyendo un poco sobre las posibles causas, encontré en este artículo, un parrafo que podría tener relación:
Cita:
Asignar en valor TRUE a la propiedad LOCAL SHARE localizada en el DBEADMIN puede evitar problemas de pérdidas de registros cuando nuestra aplicación trabaja en modo multiusuario
Cuando LOCAL SHARE es igual a TRUE el BDE no utiliza cache de escritura. Si LOCAL SHARE es iguala a FALSE en un ambiente multiusuario puede inducir a errores de pérdida de registros.
Revisalo por las dudas...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 31-10-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por ecfisa Ver Mensaje
Hola Parsec.

Leyendo un poco sobre las posibles causas, encontré en este artículo, un parrafo que podría tener relación:


Revisalo por las dudas...

Un saludo.
Nuestro amigo ecfisa se me ha adelantado.
__________________
Be water my friend.
Responder Con Cita
  #9  
Antiguo 31-10-2011
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Gracias Ecfisa.
Gracias Newtron.

Saludos
Responder Con Cita
  #10  
Antiguo 03-11-2011
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Hola,

estoy intentando cambiar este valor:
Cita:
Asignar en valor TRUE a la propiedad LOCAL SHARE localizada en el DBEADMIN puede evitar problemas de pérdidas de registros cuando nuestra aplicación trabaja en modo multiusuario
Cuando LOCAL SHARE es igual a TRUE el BDE no utiliza cache de escritura. Si LOCAL SHARE es iguala a FALSE en un ambiente multiusuario puede inducir a errores de pérdida de registros.
pero cuando aplico los cambios se queda off-line y me dice que IDAPI32.CFG no responde.
He reinstalado dos veces delphi y no se que hacer sigo perdiendo datos en las tablas (parece surrealista porque igual me presentan datos del día anterior o me aparecen registros que estaban anulados).
Si se os ocurre alguna cosa notificármelo.

Gracias
Responder Con Cita
  #11  
Antiguo 03-11-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Hola.

Mientras no cambies ese valor seguirás teniendo problemas. Mira a ver si es algún tema de permisos del sistema pero debes de poner esa variable a TRUE.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #12  
Antiguo 04-11-2011
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
¿haces un table.flushBuffers en el afterPost de las tablas?... deberías.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #13  
Antiguo 04-11-2011
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Hola a tod@s,

pude poner a TRUE el LOCAL SHARE y parece que va bien.

Cita:
Lepe:
¿haces un table.flushBuffers en el afterPost de las tablas?... deberías.
No la he utilizado nunca, me tomo nota y si veo que hace algo raro la pruebo.

Gracias a todos
Responder Con Cita
  #14  
Antiguo 04-11-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Parsec Ver Mensaje
Hola a tod@s,

pude poner a TRUE el LOCAL SHARE y parece que va bien.
Oh.... ¿dudabas de mi y de mi amigo ecfisa?
__________________
Be water my friend.
Responder Con Cita
  #15  
Antiguo 04-11-2011
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
lo del local share creo recordar que era cuando se estaba en red, pero dado que hace mucho que no uso paradox, preferí no hablar de ello.

Lo del flushbuffers, es si usas un TTable, porque los datos no se guardan, sino que quedan en un buffer y hay que vaciarlos manualmente. Si no lo haces y hay un corte de luz (por ejemplo) perderías todos los datos de esa sesión. Obviamente no es de recibo tal conducta.

El tema de recordcount, bueno, casimiro habla de sistemas gestores de Bases de datos, digo, bases de datos cliente servidor donde esa conducta que dice es normal. Sin embargo, Paradox con el BDE es una base de datos de escritorio y el término eficiencia no va con ellos, por eso el recordcount siempre te devolverá el valor correcto, aún cuando tengas 300.000 registros, Paradox como buen contable, contará todos y cada uno de ellos de la forma más ineficiente posible y te devolverá ese valor en RecordCount. Pido perdón, la ironía no es lo mío...

Antes de que me preguntes...Sí, yo también empecé a programar con BBDD usando Paradox, digo Parados, digo Parado, digo Para...fastidiarme las neuronas; después lo pasé en Red y después cambié a Firebird. Esto último es lo mejor que hice, pero bueno, por algo hay que empezar.

Saludos, suerte y que no se corte la luz nunca jamás con Paradox: "table header is corrupt, ouch!!" eso ni con Utils32 se arreglaba...
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, 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
Lo que quiere decir el profesor.. marcoszorrilla La Taberna 2 07-10-2006 07:22:56
Borland nos quiere mucho Casimiro Notevi Noticias 33 05-09-2006 21:17:31
MySQL no me quiere.... sercornejov MySQL 10 23-07-2005 17:02:49
quien se quiere enamorar Ambar Humor 5 13-10-2004 18:45:32
Al dar doble click a mi aplicacion de delphi con paradox no hace nada gaescoto Tablas planas 3 23-05-2003 09:44:35


La franja horaria es GMT +2. Ahora son las 15:29: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