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 10-03-2015
Esmeralda Ramos Esmeralda Ramos is offline
Registrado
NULL
 
Registrado: mar 2015
Posts: 9
Poder: 0
Esmeralda Ramos Va por buen camino
Migracion DBE a FIREDAC

Hola chicos con el gusto de saludarles antes que nada este foro es buenisimo.
Me ha sacado de muchas dudas.
Recientemente he migrado una version de Delphi 7 a XE4
con ello migre al componente de FIREDAC para la conexion a la base de datos en SQL
sin embargo me sucede lo siguiente
Si un usuario a esta utilizando una tabla por ejemplo OficiosPagoDetalle esta insertando y/o eliminando registros
y otro usuario b intenta realizar un insert en la misma tabla se me genera el siguiente problema
la accion b no puede terminar hasta que a termine lo cual me parece totalmente ilogico
ami connection ya le puse la propiedad xiDirtyRead, no se que otra propiedad me haga falta configurar les agradeceria su apoyo
ya que me esta generando muchos problemas.

Gracias
Responder Con Cita
  #2  
Antiguo 10-03-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Esmeralda Ramos,

¡Bienvenida al Club Delphi!

Te sugiero revisar la Guía de estilo de los foros, recomendada a todos los nuevos ingresos al Club Delphi.

¡Gracias por tu cooperación!

Saludos,

Nelson.
Responder Con Cita
  #3  
Antiguo 10-03-2015
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola Esmeralda.

Intenta usar el nivel de aislamiento (propiedad Isolation) xiReadCommitted, en lugar de xiDirtyRead. Aquí puedes ver el significado de las distintas opciones: http://docwiki.embarcadero.com/Libra...ions.Isolation

Por cierto, mencionas que usas un motor SQL, enhorabuena. Pero ¿es Firebird, Oracle, MS SQL Server...? El primero de ellos es uno de los más recomendables para trabajar con Delphi y muy bueno en general.

Por otro lado, toma muy en cuenta la recomendación de Nelson.

Saludos.
Responder Con Cita
  #4  
Antiguo 11-03-2015
Esmeralda Ramos Esmeralda Ramos is offline
Registrado
NULL
 
Registrado: mar 2015
Posts: 9
Poder: 0
Esmeralda Ramos Va por buen camino
Nelson gracias por el aporte.
Actualmente utilizo sql server 2005. No he estudiado Firebird pero me pondré a estudiar el tema.
Voy a intentar con propiedad Isolation xiReadCommitted y liberar versión del sistema. Mañana platico cuales fueron los resultados.
Realmente me intriga el tema por que no me habia sucedido y además me genera bloqueos en el sistema.
Responder Con Cita
  #5  
Antiguo 11-03-2015
Esmeralda Ramos Esmeralda Ramos is offline
Registrado
NULL
 
Registrado: mar 2015
Posts: 9
Poder: 0
Esmeralda Ramos Va por buen camino
Este es el tipo de bloqueo que se me presentan en el sistema con versión firedac lo que no sucedia con el bde.
Imágenes Adjuntas
Tipo de Archivo: jpg Bloqueo.jpg (6,1 KB, 24 visitas)
Responder Con Cita
  #6  
Antiguo 11-03-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
La imagen es muy chica y no se ve nada :P

Inicias transacciones y las cerras debidamente? Podrias mostrar la parte en que abris y cerras las transacciones?

Lo digo porque un compañero tenia un "problema" similar al tuyo y decia que todo era una "m..." y hacia algo como esto

Código Delphi [-]
procedure TForm1.Button1Click..
begin
  IniciarTransaccion;
end;

procedure TForm1.Button2Click..
begin
  try
    with Tabla_Clientes do
    begin
      FieldByName('Nombre').AsString := EditNombre.Text;
      FieldByName('Apellido').AsString := EditApellido.Text;
    end;
      Commit;
    except
       Rollback;
   end;
end;

Una transaccion de insercion o borrado de registro deberia llevar unos cuantos milisegundos, a no ser que dispares millones de triggers, no deberia pasarte lo de A bloquea a B

Pero ahora en el codigo que yo puse antes, el tipo iniciaba la transaccion con un boton, y la cerraba con otro. Que pasa si tocan el button1 y se van a tomar su cafecito?
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
Uso de Firedac jafera Conexión con bases de datos 2 12-11-2014 12:46:25
Problema con FireDac darkamerico Conexión con bases de datos 2 04-11-2014 14:05:16
Migracion BDE a FireDac rodker Varios 3 23-07-2014 20:55:17
FireDac y Access glsaavedra Conexión con bases de datos 2 27-05-2014 23:09:15
Firedac Aldo Conexión con bases de datos 2 16-12-2013 22:26:07


La franja horaria es GMT +2. Ahora son las 20:34:09.


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