Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-01-2011
ElGatitoTapatio ElGatitoTapatio is offline
Miembro
 
Registrado: nov 2006
Posts: 38
Poder: 0
ElGatitoTapatio Va por buen camino
Unhappy Ayuda con Firebird, Transacciones, Zeos y Delphi

Mis estimados miembros de este excelente foro despues de leer y leer posts acerca de firebird buscando solucion a mis problemas, me he atrevido a pedirles de su ayuda.

LA verdad es que soy un super novato en Firebird y su utilizacion con Delphi, eso me doy cuenta al leer todo lo que hay en este importante foro, por lo tanto les expongo mis broncas.

Tengo un sistema desarrollado en delphi el cual se utiliza como cliente servidor, uno de los problemas es que cuando hago cambios en un cliente (inserts, updates, deletes) estos cambios no se ven reflejados en algun otro cliente hasta que se cierran y se abren las aplicaciones, esto despues de lo que he leido al parecer es por como estoy utilizando las transacciones o tal vez por la falta de utilizacion de las mismas.

Otra bronca es que al agregar muchos registros despues de un numero determinado el sistema se hace muy lento hasta el punto de bloquearse y se tiene que cerrar la aplicacion, esto tambien parece ser por la bronca de las transacciones, al parecer no las estoy cerrando por lo que he leido, pero por eso quiero confirmarlo con ustedes.

Les comento que utilizo Firebird 2.1.3, DElphi 7 y componentes ZEOS, que estos ultimos son tambien algo por lo que me hace pedir ayuda, ya que al parecer esto es mucho mas sencillo con los componentes IB. Pero pues como tendria que cambiar todo el sistema o por lo menos los componentes pues prefiero preguntar antes para, si se puede ahorrar trabajo.

Les anexo basicamente el codigo que estoy utilizando para los procesos que implican un cambio en la base de datos, tambien les comento que me doy cuenta que en la propiedad de TZConnection.TransactIsolationLEvel tenia tiNone, asi que creo que debo de comenzar por cambiarla por tiReadCommitted, creo yo.

Este es el codigo:


Código Delphi [-]
           with dm_databases.ZConnection_LAXP do
            Try
              frm_main.GuardaCursor;
              ExecuteDirect('Delete from HISTORICO_TRANSACCIONES '+
                            'where FOLIO = '+ed_folio.Text);
              for i := 1 to grid_pesadas.RowCount do
                ExecuteDirect('Insert into HISTORICO_TRANSACCIONES(FOLIO,ID_TIPO,TOT_EJES,NO_EJE,ID_CAMION,ID_CHOFER,'+
                              'ID_EMPRESA,ID_PRODUCTO,PESO_INICIAL,PESO_CIERRE,FECHA_INICIAL,FECHA_CIERRE,'+
                              'STATUS,PLACA) Values('+ed_folio.Text+','+IntToStr(TipoBascula)+','+IntToStr(ed_ejes.Value)+
                              ','+grid_pesadas.Cells[0,i-1]+','+LIdCamiones[cb_camion.itemindex]+','+LIdChoferes[cb_chofer.itemindex]+
                              ','+LIdEmpresas[cb_empresa.itemindex]+','+LIdProductos[cb_producto.itemindex]+','+
                              grid_pesadas.Cells[1,i-1]+','+grid_pesadas.Cells[2,i-1]+','''+ed_fecha_inicial.text+' '+
                              ed_time_inicial.text+''','''+ed_fecha_cierre.text+' '+ed_time_cierre.text+''','+IntToStr(status)+
                              ','''+ed_placa_camion.text+''')');
              frm_main.RestauraCursor;
              HistorialTransacciones;
              NuevaTransaccion;
              MessageBox(0, 'Se ha guardado la transacción correctamente.', 'Transacción almacenada', MB_ICONINFORMATION or MB_OK or MB_TASKMODAL);
            except
                frm_main.RestauraCursor;
                MessageBox(0, 'Ocurrió algún error al guardar la transacción.', 'Error', MB_ICONERROR or MB_OK or MB_TASKMODAL);
            end

Debo de aclarar que cuando menciono transaccion en el codigo no me refiero a transacciones de bases de datos, sino al proceso que se realiza, ya que asi se le llama en el sistema en cuestion.

La verdad es que me da pena poner el codigo porque se que soy novatazo pero no me queda de otra.

De antemano les agradezco enormemente la ayuda que me puedan dar .

Saludos!!

Última edición por Casimiro Notevi fecha: 27-01-2011 a las 13:14:46. Razón: Arreglar las etiquetas
Responder Con Cita
 



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 + Zeos + Delphi ¡¡ayuda!!... Jheysson13 Conexión con bases de datos 19 17-12-2008 12:52:31
Comitar transacciones con DBExpress, Delphi 6 y Firebird cesar_picazo Conexión con bases de datos 1 26-05-2006 22:39:51
Problemas con las Transacciones en Firebird 1.5 y Delphi 2005 Jesús Pena Firebird e Interbase 3 08-04-2006 21:10:15
Transacciones FireBird con Zeos vichovi Conexión con bases de datos 3 13-07-2005 08:49:29
Como Realizar transacciones con Zeos o en Delphi Dayvis MySQL 1 22-10-2004 03:00:47


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