Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2015
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Gracias ElDioni por tu comentario;

El caso como comente antes es que esto desarrollando una aplicación la cual tiene clientes android y las comunicaciones las hago mediante IdTCPClient1.IOHandler pero lo curioso del asunto es cuando y por casualidad, dos clientes conectan al mismo tiempo al servidor en alguno de los clientes aparece el mensaje "Connection Closed Gracefully".

Las pruebas las hago con dos móviles, intento provocar que pasaría cuando los clientes coincidan mas de uno a la vez. En las pruebas la mayor parte de ellas no suele pasar nada, es mas si miro en los registros de la tabla los dos se han guardado correctamente coincidiendo además en hora, min y seg

Estado leyendo que los componentes en los INDY el servidor crea un hilo automáticamente por cada cliente que se conecta lo que me hace pensar que el problema no este en la comunicación entre los clientes y el servidor por no poder manejar éste a los clientes si no quizás en la bbdd que uso que quizás este "ralentizando" las comunicaciones y por ello pienso que access no permita o es capaz de auto gestionar la inserción de varias peticiones a la vez.

El tema me tiene frito por que como comento de 50 pruebas no "falla" ni una pero otras de 50 me ha "fallado" 3 y mi intención que no suceda nunca.
Responder Con Cita
  #2  
Antiguo 08-09-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No comentas cómo estás accediendo (componentes).
Si estás utilizando ADO, puedes usar transacciones sin problemas para solvantar problemas de concurrencia.

Tengo aplicaciones con Access y trabajando con 5 puestos que funcionan perfectamente.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 08-09-2015
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Gracias por comentar Neftali;

Como componente uso ADO y en cuanto a clientes llegare a tener 20 pero claro si ya con dos a veces coinciden con mas ....
En cuanto a la configuración del ADOConnection uso la normal es decir por ejemplo:

Código Delphi [-]
CursorLocation := clUseClient 
ConnectOption := coConnectUnspecified

En lo referente a las conexiones uso INDY IdTCPServer y el IdTCPCLient.

El problema podría solucionarlo de cara a la galería haciendo que el cliente cuando es rechazado volviese a intentarlo varias veces pero me gustaría averiguar el porque no esta funcionando como debiera si es que Access es capaz de trabajar con concurrencia.
Responder Con Cita
  #4  
Antiguo 08-09-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Perdona, pero me he perdido.
Estábamos hablando de aplicaciones Windows que acceden a una Base de Datos Access utilizando ADO.
Te iba a preguntar en qué momento y qué error te daba al acceder más de un cliente...

Y ahora veo tu otro mensaje (fallo mio no haberlo leído antes) y la respuesta, donde hablas de TCP/IP y móviles que corren Android.
?¿?¿?¿?

Me he perdido. ¿Qué tiene que ver eso con lo que hablábamos?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 08-09-2015
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Perdona por no explicarme bien, suelo tener ese problema;

Haciendo historia...
Tenia creada una aplicaron la cual inserta registros localmente sin problemas, recientemente se pidió que los datos se introdujesen además desde otros puestos de trabajo, ok comparto la bd que es access y no hay problema.
Posteriormente se decidió que poner varios pc's no era óptimo y se pensó en la idea de utilizar clientes móviles aprovechando que la aplicaron para pc se utilizo con Firemonkey por lo que compilando para android estará listo.

¿Como funciona el tema de la inserción de datos remotos? sencillo, añado un componente IdTCPServer al programa original, digamos el "servidor" y a los clientes el componente IdTCPCLient por lo que cuando un cliente envía un dato este llega al "servidor", este comprueba que todo es correcto y de ser así usando componentes ADO guarda en access el dato posteriormente el "servidor" de vuelve al cliente el mensaje de que todo fue ok o no ok.

Pues bien aveces cuando, por probar la aplicaron con dos clientes android, envío un dato a la cuenta de tres "1...2...3... click! " aveces me de volvía el mensaje "Connection Closed Gracefully" el cual sustituí por "Por favor vuelva a intentarlo de nuevo".
Por eso mi duda es si access es capar de soportar varias operaciones de insertado sobre la misma tabla. Cada nuevo registro que se introduce en la tabla lleva un numero de id diferente el cual consigo, mediante consulta averiguar cual fue el ultimo numero id guardado y a este le sumo uno.

Tengo que decir que no tengo problemas de que los datos se guarden mal o se corrompan, me da la impresion que es un problema de velocidad, mientras no finalice la operación de guarda mantendrá la tabla bloqueada.

Muchas gracias por intentar ayudarme, agradezco toda sugerencia.
Responder Con Cita
  #6  
Antiguo 09-09-2015
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Se me ocurre una idea;
en tu web Neftali veo que tienes el ejemplos de como utilizar ADO con Threads, ¿y si a cada cliente que conecta lo mando mediante un hilo a insertar el dato en access?

Última edición por barakuda fecha: 09-09-2015 a las 05:31:19.
Responder Con Cita
  #7  
Antiguo 09-09-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por barakuda Ver Mensaje
Pues bien aveces cuando, por probar la aplicaron con dos clientes android, envío un dato a la cuenta de tres "1...2...3... click! " aveces me de volvía el mensaje "Connection Closed Gracefully" el cual sustituí por "Por favor vuelva a intentarlo de nuevo".
Por eso mi duda es si access es capar de soportar varias operaciones de insertado sobre la misma tabla. Cada nuevo registro que se introduce en la tabla lleva un numero de id diferente el cual consigo, mediante consulta averiguar cual fue el ultimo numero id guardado y a este le sumo uno.
Hola.
Creo que el problema está en un sitio diferente a donde estás mirando.
Tienes 2 pasos:
1) La conexión por TCP/IP desde el móvil al ordenador remoto.
2) Desde el ordenador remoto insertar en la BD.

El error que estás comentando creo que se refiere a problemas en la conexión por TCP/IP, no tiene nada que ver con ADO.

¿Porqué para la conexión desde los dispositivos móviles, no utilizas DataSnap o un webservice?

Échale un vistazo a este video o a esta serie de artículos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 09-09-2015
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Nas ...

Problema por la conexión lo descarto ya que en la oficina estoy a escasos 4m del router, además también echo pruebas en casa, si ya se soy masoca pero me mola XD, y también me a pasado por lo cual no lo creo.

Las opciones de atacar directamente a la bd ya las contemple y de echo creo que seria la mejor opción, el problema es que el programa tiene también una parte que sirve de monitorizado y de ajuste.

Dicha parte ofrece la posibilidad de ver al momento en una Stringtable los datos que se recibe del cliente es decir una vez se ha guardado el dato en la bd también el programa añade un nuevo registro a la Stringtable.
El usuario desde la Stringtable puede alterar el orden en el que se procesaran los datos, subiendo o bajando filas de la Stringtable, una vez el usuario satisfecho con los cambios puede guardar los datos en la bd.
Se puede pensar que, "si el problema esta en que la Stringtable no se refresca con el nuevo dato, pues que cada x tiempo la tabla se auto refresque", eso seria coherente pero al refrescar la tabla cualquier modificación echa por el usuario en la alteración de los registros se perdería por lo cual no me sirve.

Es por eso básicamente que el flujo del dato lo canalizo a través del programa.
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
Problema de acceso a base de datos Access Ulnaju Tablas planas 6 15-08-2007 01:53:13
acceso a tablas access con bde joanajj Conexión con bases de datos 2 03-07-2006 22:08:34
duda de como bajarse un archivo y leerlo al unisono jacofl Internet 0 09-09-2005 15:34:04
Acceso a una bd de access Anibalcast Conexión con bases de datos 3 12-05-2005 02:56:48
Problemas acceso a BD de Access coquycu Conexión con bases de datos 2 10-04-2005 13:51:43


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


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