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 25-08-2004
images images is offline
Miembro
 
Registrado: ago 2004
Posts: 23
Poder: 0
images Va por buen camino
Refresh d tb n red con Timer. Si ay cualkier xcepcion se repit el message sin parar

Hola, soy nuevo. Saludos a todo el Club Delphi

Llevo unos dias buscando informacion aqui en el club acerca del problema q voy a contar y otros que he resuelto. Pero no consigo resolver este:

Acabo de empezar en esto de PARADOX EN RED y he seguido el articulo q hay aqui en el foro y otros hilos y me ha ido genial. Pero me ocurre lo siguiente:

Para actualizar la red utilizo un timer. He leido aqui otro sistema el cual dice q es mejor por que consume menos CPU q el timer pero de momento me apaño con el timer, no me da problemas. Ademas otro sistema explica q es para delphi 3 y yo tengo 6 y me daria problemas con el tipo iClientData.

Bueno, el problema lo tengo en que cuando hago cualquier operacion de insert o edit, las pongo en un TRY EXCEPT. No se mucho de excepciones (mas bien nada) pero lo unico que hago es si hay excepcion muestro una ventana donde muestro un texto que dice "NO HA SIDO POSIBLE COMPLETAR LA OPERACION, POSIBLEMENTE EL REGISTRO ESTA SIENDO UTILIZADO POR OTRO USUARIO. INTENTOLO OTRA VEZ". Ya se que es cutre pero hasta que no sepa mas de excepciones no se q mas se puede hacer.

Entonces llega el problema cuando ocurre alguna excepcion: sale mi ventanita, la cierras y..........DESASTRE!! sale un message "key violation" uno detras de otro sin parar. Supongo que es el timer de refresco que esta configurado a 1 segundo. Y asi se queda la aplicacion, no puedo hace nada, solo ver como se va llenando la pantalla de message y esperar tal vez a que el sistema se sobrecarge o Ctrl+Alt+Supr, pero no creo q esto le haga gracia a mi cliente.

Tal vez exista otra manera de Actualizar tablas en Delphi 6 Paradox. Aunque creo q todo pasa por usar un timer, por que el otro sistema q se explica aqui en el foro al final tambien hace uso de un timer y supongo q me pasaria igual.

Todo lo demas lo tengo configurado correctamente y va bien, gracias al articulo de PARADOX EN RED, por que no tenia ni pajolera idea.

Otro cosa q me complica es que el progama lo desarrollo en un solo PC con Windows XP y los ejecutables y demas van a ir a parar a dos PC en red con Windows 98

Por favor, ¿podeis ayudarme?, Gracias
Responder Con Cita
  #2  
Antiguo 25-08-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Wop!

Bueno, antes de nada darte la bienbenida al club, ¡esperamos verte a menudo por aquí!

Bien, sobre tu problema, a mi me huele a que en el timer, de manera directa o indirecta estás probocando un post sobre la tabla que produce el error. ¿Por qué no nos pegas el código que tienes en el evento del timer? (recuerda usar la etiqueta [delphi] )
__________________
E pur si muove
Responder Con Cita
  #3  
Antiguo 25-08-2004
images images is offline
Miembro
 
Registrado: ago 2004
Posts: 23
Poder: 0
images Va por buen camino
Gracias por responder

En el timer no tengo otra cosa mas que refresh a una tabla detras de otra.

Código Delphi [-]
   Tabla1.Refresh
   Tabla2.Refresh

etc.... hasta un total de 20 tablas.

Otra cosa q no me funciona (en mi PC, solo sin red y XP) es lo de los paths con UNC \\NombreEquipo\Datos.....

buff!! se me esta haciendo muy cuesta arriba esto de trabajar en red. Solo llevo en ello un par de semanas, ya, pero....

De nuevo, muchas gracias. Espero q podais seguir ayudandome en esto

...y bueno, espero tambien poder ayudaros yo en algo

Saludos!
Responder Con Cita
  #4  
Antiguo 25-08-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Wop!

Cita:
Empezado por images
En el timer no tengo otra cosa mas que refresh a una tabla detras de otra.
Es lo que me imaginaba El refresh provoca un Post en la tabla si esta está en edición. Si cuando tú hacias el post a mano se producía un error (como un key violation) éste se te reproducirá al hacer el Refresh.

A parte de eso, veo un error conceptual en tu estrategia: ¿Crees que es buena idea refrescar una tabla si esta está siendo editada por el usuario? Yo creo que no.

En mi [humilde]opinión creo que deberías comprobar que las tablas no se estén editando antes de hacer el Refresh en el Timer, algo así:
Código Delphi [-]
  if Table1.Active and not (Table1.State in [dsEdit, dsInsert]) then
    Table1.Refresh;

De esta manera, creo que solucionarías los dos problemas
__________________
E pur si muove
Responder Con Cita
  #5  
Antiguo 25-08-2004
images images is offline
Miembro
 
Registrado: ago 2004
Posts: 23
Poder: 0
images Va por buen camino
Muchiiiiiiiiiiiiisimas gracias

Funciona perfectamente!!!

Pero todavia hay otra cosa, y que me tiene ya desquiciado. Y es que cada vez que tengo una excepcion debo cerrar delphi y volver a abrir por el dicho so "directory is busy".

He encontrado sobre el tema aqui en el foro. He probado borrando a mano los archivos .NET y .LCK pero nada de nada. Solo esta mañana he tenido q cerrar y abrir otra vez el Delphi 40.000 veces.

Tambien he ledio aqui q conviene q el directorio de trabajo del Database DeskTop y el de la aplicacion sean distinto. ¿no sera al reves? Porque al tener abierta mi aplicacion (sola o en delphi) y abrir el Database Desktop, al abrir este, me daba el error de que la tabla esta "busy" tambien. Pues bien, le puesto al BDE, en Drivers-Native-Paradox el mismo directorio NET q mi aplicacion y se ha resuelto. Puedo tener dos instancias de mi aplicacion y el DBD todo abierto sin problemas y actualizado

¿Se puede hacer lo mismo con el IDE de Delphi?
Responder Con Cita
  #6  
Antiguo 25-08-2004
images images is offline
Miembro
 
Registrado: ago 2004
Posts: 23
Poder: 0
images Va por buen camino
Ah! se me olvidaba

Lo que comento en el primer mensaje:
Lo de los path UNC \\ ¿por que no me funciona?

Lo pongo asi:

\\NombreEquipo\CarpetaPrograma\Servidor
Responder Con Cita
  #7  
Antiguo 25-08-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Cita:
Empezado por images
Lo de los path UNC \\ ¿por que no me funciona?

Lo pongo asi:

\\NombreEquipo\CarpetaPrograma\Servidor
Pues no lo sé yo trabajo siempre con unidades de red capturadas sin problemas
__________________
E pur si muove
Responder Con Cita
  #8  
Antiguo 25-08-2004
images images is offline
Miembro
 
Registrado: ago 2004
Posts: 23
Poder: 0
images Va por buen camino
je je, esto parece casi un chat. De nuevo mil gracias por responderme y tan pronto

Aqui sigo explorando el Club, porque hay tela y mucho q aprender ( y espero colaborar en ello)

Esto es mejor q el tocho de libro q me acabo de comprar de Francisco Charte "Delphi 6 y Kylix"

Saludos !!!
Responder Con Cita
  #9  
Antiguo 25-08-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Cita:
Empezado por images
Esto es mejor q el tocho de libro q me acabo de comprar de Francisco Charte "Delphi 6 y Kylix"
Yo no estaría tan seguro de eso!!!!!! Tengo muy buenas referencias de ese libro, aunque no lo he leido.

Si estas empezando, tambien te recomiendo que te leas "La Cara Oculta de Delphi 4", te lo puedes descargar gratis en pdf de www.marteens.com Aunque sea de la versión 4, los conceptos son totalmente aplicables a la 6, especialmente si trabajas con Paradox (más propio de aquellos tiempos )
__________________
E pur si muove
Responder Con Cita
  #10  
Antiguo 25-08-2004
images images is offline
Miembro
 
Registrado: ago 2004
Posts: 23
Poder: 0
images Va por buen camino
Cuanto te agradezco tu ayuda Marto, sinceramente.

La verdad es que lo de hacer el Refresh sin comprobar si esta en edit o insert era una chapuza. Algo tan vital y tan sencillo y no se me ocurrio. A veces lo mas sencillo no lo ves o se te escapa. Tambien es verdad que hace 4 dias q estoy en esto.

Creo que me va a gustar formar parte de este Club

Ah, lo del Libro de Charte, ha sido una reaccion al ver como mola y lo que hay en este Club.

Tambien me he descargado la Cara Oculta De Delphi 4. Lo voy a imprimir. ¿estoy loco?!!!! son mas de 900 paginas. Pues no se si estoy loco pero ahora mismo voy a por un par de paquetes de 500 folios y un par de cartuchos de tinta negra.

Saludos !
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


La franja horaria es GMT +2. Ahora son las 21:05:10.


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