Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Redes
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-03-2021
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
Modificar registros en red

Hola,

Tengo un programa hecho con Delphi 2.010 y uso Firebird 2,5, la base de datos está en un servidor de un ordenador A compartido donde puedo acceder desde otros ordenadores sin problemas, pudiendo ver todos los listados y añadir registros o modificarlos en red desde cualquier otro ordenador.

El problema es que todo esto lo puedo hacer bien, pero cuando estoy yo sólo modificando los registros, pero cuando otro ordenador se conecta a ese programa en red, puede ver cualquier listados conjuntamente pero a la hora de insertar registros se queda bloqueado pensando dando error, aunque los otros ordenadores no estén modificando la misma tabla.

También ocurre cuando el mismo ordenador abre dos veces el programa, se queda como pensando sin poder avanzar.

No sé qué debo de hacer para poder para poder trabajar en red, modificando registros en red sin que se bloquee si necesita alguna configuración interna.

Gracias.
Responder Con Cita
  #2  
Antiguo 24-03-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Falta TODA la información para poder ayudarte.
Ni siquiera has dicho el error, simplemente has dicho que "se queda bloqueado dando error"

¿Es un programa en un ordenador al que se conectan los demás o es un programa en cada ordenador que conecta a un servidor firebird?
¿Qué parámetros usas en el componente de base de datos y en el de transacción? Creo que ni has dicho los componentes que usas.
En fin, replanteate la pregunta mejor para que podamos ayudar.
Saludos.
Responder Con Cita
  #3  
Antiguo 25-03-2021
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
Yo tengo el mismo problema: dos equipos(PC1 y PC2) conectados en red local. Cada equipo tiene instalado el mismo programa que atacan a la base de datos Firebird 2.5 que está en el equipo pc1. Pc2 tiene firebird cliente. el puerto 3050 está abierto, Firewall está inactivo(de momento)...
El programa está desarrollado en delphi xe7.
Si estoy introduciendo datos en un equipo(pc1) al introducir datos en el otro(pc2) se queda pensando .. y cuando cierro el programa en el primero (pc1) sale un error en el segundo: "deadlock update conflicts with concurrent update....."
He seguido por debug donde da el error y me da en
Código Delphi [-]
        ZI := TSQLQuery.Create(ZC);
        ZI.SQLConnection := frmMain.SQLConnection1;
        ZI.SQL.Text := '';
        ZI.SQL.Text := ' update contador set NUM_EXPE = ' + IntToStr(result) +
                       ' where EMPRESA = ' + emp + ' and ACTIVIDAD = ' + act +
                       ' and EJERCICIO = ' + eje;
        ZI.ExecSQL();
        ZI.close;
Previamente no hay ningún update de ninguna tabla porque es lo primero que hace el programa después de login.
Que estoy haciendo mal?
Gracias
Responder Con Cita
  #4  
Antiguo 25-03-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lee mi contestación anterior.
Haz una búsqueda por "deadlock" en los foros, llegarás a hilos como este, por ejemplo.

Última edición por Casimiro Notevi fecha: 25-03-2021 a las 10:35:19.
Responder Con Cita
  #5  
Antiguo 25-03-2021
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
A ver Casimiro , un poco de paciencia con los novatos, jejeje...
Creo que he contestado a casi todas las preguntas que haces:

1.-Ni siquiera has dicho el error, simplemente has dicho que "se queda bloqueado dando error"
R.- "deadlock update conflicts with concurrent update....."

2.-¿Es un programa en un ordenador al que se conectan los demás o es un programa en cada ordenador que conecta a un servidor firebird?
R.-Cada equipo tiene instalado el mismo programa que atacan a la base de datos Firebird 2.5 que está en el equipo pc1
3.- ¿Qué parámetros usas en el componente de base de datos y en el de transacción? Creo que ni has dicho los componentes que usas?
R.- Es cierto, esta no la había contestado. Uso componentes dbexpress. No uso transacciones (al menos donde da el error).
los parámetros de conexión :
DriverName=FIREBIRDCONNECTION
getDriverFunc=getDriverFirebird
Database=C:\baseDatos\datos\GESTORIA.FDB
RoleName=RoleName
User_Name=sysdba
Password=masterkey
sqldialect=3
LocaleCode=0000
Blobsize=-1
CommitRetain=False
waitonlocks=True
isolationlevel=ReadCommitted
trim char=False
HostName=localhost

Estos son los parámetros en el equipo PC1 que hace de servidor. En el otro se cambia el Hostname.
El programa se queda pensando al hacer ZI.EXECSQL

No se que más datos poner, si necesitas algo más, por favor, pídemelo.
Y sobretodo GRACIAS por tu tiempo.
Responder Con Cita
  #6  
Antiguo 25-03-2021
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
Creo que se ha solucionado.
He metido el update dentro de una transacción y de momento parece que funciona.
Seguiré probando.
Gracias Casimiro.
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
Firebird remoto - Modificar registros Gregorio Cíber Conexión con bases de datos 8 23-03-2021 22:32:04
modificar variios registros con dataset pmtzg Conexión con bases de datos 7 11-02-2012 12:05:02
Modificar registros desde DBgrid quakerman Conexión con bases de datos 7 09-11-2011 03:40:03
modificar registros yossi SQL 6 11-06-2010 03:43:58
modificar registros query Buelos Firebird e Interbase 8 02-03-2008 00:52:00


La franja horaria es GMT +2. Ahora son las 07:28:38.


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