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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-07-2005
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 524
Poder: 22
IVAND Va por buen camino
Hombre desesperado .. Decepcionado de firebird

Hola a todos

Hace año y medio empeze un proyecto con delphi 6 y firebird (empezando con la v1 y ahora con v1.5), desde hace unos 6 meses me estoy desencantado y desesperando pues ciertos datos se me borran sin motivo alguno que puede estar pasando .... x favor necesito ayuda en la empresa que trabajo ya no se que decir ni que excusa poner

Trabajo con ibx utilizo commitretaining los documento estan impresos son sacados despues que se graban x otro query y luego impresos es x eso que 100 % seguro que en su momento el dato estaba grabado , luego desaparece no hay en el sistema nnguna accion para modificar el asiento peor aun los auxiliares (Parte de contabilidad), los discos del servidor (Linux red hat 9) estan en perfecto estado , tampoco utilizo borrado en cascada ni nada que se le paresca .... que hago x favor necesito ayuda aunque sea de pago

Atentamente

Ivan
__________________
IVAND
Responder Con Cita
  #2  
Antiguo 28-07-2005
PedroAlfonso PedroAlfonso is offline
Miembro
 
Registrado: mar 2005
Posts: 34
Poder: 0
PedroAlfonso Va por buen camino
Talking

No desesperes....
Yo también acabo de empezar con Delphi-Interbase y te aseguro que funcionan bien.
Necesitamos más detalles.
Por ejemplo:
el código de dephi:
-al momento de insertar
-al momento de generar el reporte.

También incluye por favor el código de los queries que usas
Responder Con Cita
  #3  
Antiguo 28-07-2005
PedroAlfonso PedroAlfonso is offline
Miembro
 
Registrado: mar 2005
Posts: 34
Poder: 0
PedroAlfonso Va por buen camino
Talking

Otra cosa:

Me acordé que ese error muy posiblemente es porque no tienes READ-COMMITED en el IBtransaction
Verificalo dandole doble click en el icono del transaction.
Responder Con Cita
  #4  
Antiguo 28-07-2005
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 524
Poder: 22
IVAND Va por buen camino
El codigo es muy simple cada que hace un insert a la cabeza disparas un commitretaing y cada vez que haces un insert en el detalle en el evento onnewrecord se insert la cabeza y se dispara el evento afterpost (commitretaing) , luego en el bottom de grabar un select que saca la cabeza y otro el detalle u listo , si te das cuenta las grabaciones son directas a las tablas asi que no deberia fallar
__________________
IVAND
Responder Con Cita
  #5  
Antiguo 28-07-2005
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Tube un problema parecido con los IBX

los datos desaperecian cuando se apagaba el equipo
los que hice fue entre tantas cosas fue: en el componente ibx (tdatasource) evento after post efectuar un commit retain y cuando el programa termina generar un commit
esto lo hice con delphi 5 y interbase 6.0

espero que de pronto te ayude

Carlos
Responder Con Cita
  #6  
Antiguo 28-07-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Me imagino, supongo (sólo por mencionarlo), que no se te habrá olvidado hacer post

Quizás te sería de ayuda echar un vistazo a la cara oculta de delphi 4, ahí se explica muy claramente la manera de trabajar con interbase/firebird y es algo totalmente válido hoy en día con los nuevos delphi.

Aquí la puedes descargar en pdf.
Responder Con Cita
  #7  
Antiguo 28-07-2005
Migpal Migpal is offline
Miembro
 
Registrado: jul 2005
Ubicación: Colombia
Posts: 91
Poder: 19
Migpal Va por buen camino
desesperado

HUYYYYY que vaina, hasta ahora veo que eso pasa con firebird, llevo tres años con la version 1.0.3 y me parece un gestor muy serio, hasta el momento y toco madera no se me han desaparecido ni un caracter y tengo BD de 300 MB ya. Algo en el codigo debes estar haciendo mal en especial verifica las transacciones y te sugiero que realizes ejercicios sencillos de prueba.
Responder Con Cita
  #8  
Antiguo 28-07-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
resp

Mira si mas no recuerdo los ibx tienen la particularidad que si no haces un commit en vez de comiretaning los datos llegan a estar completamente grabados cuando cierras tu aplicacion. Asi que una solucion es hacer commint en el afterpost.

Si quieres has un aprueba con commitretainig y cortas la energia de la maquina y veras que los datos se pierden y luego prueba con commit tambien prueba con un post forzado.

Y por favor no le echas la culpa a Firebir(que pronto podra competir con aracle) si no a los componentes.

A mi me dio exactamente el mismo problema y la tube que cambiar a fiplus que son muy pero muy buenos y luego me decidi por usas los ibobjects que segun veo tienen mejor rendimiento mientras mas datos hay.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #9  
Antiguo 29-07-2005
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 288
Poder: 22
kalimero Va por buen camino
Hola.

Llevo trabajando varios años con Firebird y nunca me he encontrado con este problema. Sospecho que algo relacionado con el código se te está escapando.
Deberias publicar aqui el código para que entre todos podamos averiguar que es lo que sucede.

Saludos
Responder Con Cita
  #10  
Antiguo 29-07-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hola IVAND.

Realmente es un problema extraño... jamás he visto a Firebird perder un dato... así que seguramente hay algo en los componentes de acceso o en el propio código de tu aplicación. ¿Has intentado encontrar un patrón en los datos que se pierden? No se, quizas de un solo operador, o bajo ciertas circunstancias... horario, cortes de energía, operaciones anteriores/posteriores?

Seguro algo se te está quedando en el tintero.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #11  
Antiguo 03-08-2005
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Y no solo pasa cuando se va la luz...

como dice rastafarey el problema es porque la información no queda totalmente acentada con el commitReating, pero no solo pasa cuando se va la luz, tambien pasa cuando se cierra la aplicación incorrectamente, (a mi me paso algo así, fua varios meses atras no recuerdo muy bien pero era al pasar de un form a otro sin cerrar bien uno que estaba en showModal, esto me generaba una ecepción y en algunas ocaciones era necesario utilizar el famoso ctrl - alt - supr ) entonces al cerrar bruscamente la aplicación tambien se pierde datos (no necesariamente un corte de luz, tambien un bloqueo de Windows --algo poco posible!!!!! -- o un bloqueo an la aplicación).
Y ratificando lo dicho anteriormente por rastafarey no culpen a Firebird, que yo al igual que muchos nos sentimos muy contentos con el exelete funcionamiento de Firebird. ...
Responder Con Cita
  #12  
Antiguo 03-08-2005
Avatar de Rufus
Rufus Rufus is offline
Miembro
 
Registrado: may 2004
Ubicación: Canarias
Posts: 193
Poder: 21
Rufus Va por buen camino
Cita:
Empezado por RONPABLO
no culpen a Firebird, que yo al igual que muchos nos sentimos muy contentos con el exelete funcionamiento de Firebird
Un momento, yo tambien estoy contento con firebird pero eso no impide reconocer que como todo software puede tener sus fallos y si se ve que falla en algo, pues se le echan todas las culpas del mundo. Y no estoy diciendo que sea un fallo de firebird lo que se trata en este post.

No nos convirtamos en talibanes, por favor. La cantidad de talibanes linuxeros fueron los que hicieron que me alejara de linux como de la peste durante 3 años por lo menos, es que era insoportable tratar con un gran porcentaje de usuarios de linux que no eran capaces de asimilar la más mínima crítica. Por suerte la situación ha cambiado últimamente.

En fin, no hay mas ciego que el que no quiere ver.
__________________
Milo
Responder Con Cita
  #13  
Antiguo 03-08-2005
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Cita:
Empezado por Rufus
Un momento, yo tambien estoy contento con firebird pero eso no impide reconocer que como todo software puede tener sus fallos y si se ve que falla en algo, pues se le echan todas las culpas del mundo. Y no estoy diciendo que sea un fallo de firebird lo que se trata en este post.
Es normal que todo software que conste de mas de unas pocas lineas tenga bugs, pero el tipo de error que se describe es demasiado obvio y grave, es decir hay decenas de miles de firebirds funcionando por ahi, un error de ese tipo ya habria sido notificado por decenas o centenares de usuarios y arreglado.

En tu caso pareceria que no se estuviese haciendo el commit de la transaccion de modificacion, la aplicacion que ha hecho los cambios mientras no se cierre, siempre ve sus propias modificaciones aunque la transaccion no este confirmada, hasta que se apaga el equipo y las operaciones sin confirmar se cancelan.

Otra opcion es que la base de datos este dañada desde hace tiempo, aunque si fuese asi deberias notar muchos mas problemas. Yo pasaria el gfix para comprobar si hay algun tipo de daño en la estructura de la base de datos.

Siendo que se trata de un programa propiedad de tu empresa, de modo que va a ser dificil que puedas mostrarnos el codigo fuente entero para poder detectar algun tipo de fallo. Yo en tu caso contrataria soporte con alguna empresa especializada como ibphoenix y que ellos auditen el codigo y detecten el fallo.

Saludos
Responder Con Cita
  #14  
Antiguo 03-08-2005
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
No esa no es mi idea

Con lo que dije no quiero tratar de hacer creer que Firebird esta inmaculadamente libre de errores y es cierto que fui un poco ambiguo, pero a mi forma de ver las cosas el encabezdo es un poco dramatico y muy alertante... si yo no se nada de Bases de Datos y busco en google sobre Firebird ya que es libre y ademas la puedo descargar muy facil de internet y me encuentro con "Hombre desesperado .. Decepcionado de firebird". ni me arrimo a ver que es el tal firevird.
Ahora cuando dije que no culpen a firebird me falto aclarar que no lo culpen por un error que no es de el, esto lo dije porque quiero que cresca mas y lastimosamente en muchas ocaciones no se investiga para clarificar si es verdad o no lo que se le imputa a un software y asi se genera una cierta apatia en muchas personas que inician.

Ahora creo que la comparación con un taliban, fue dada de forma muy acelerada.
Responder Con Cita
  #15  
Antiguo 04-08-2005
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 524
Poder: 22
IVAND Va por buen camino
Hola a todos


Espero sepan disculpar si me he dirigido a firebird como el culpable de mis males pero cuando tienes a un monton de personas que te indican que le faltan datos y te muestran en la cara el papel impreso eso es terrible

Probare con lo que me dicen , probare Gfix , commit en la transaccion espero poder resolver el problema a la brevedad posible


Atentamente
__________________
IVAND
Responder Con Cita
  #16  
Antiguo 11-09-2005
hot1974 hot1974 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mexico D.F.
Posts: 31
Poder: 0
hot1974 Va por buen camino
Mismo caso

Hola a todos los foristas, les explico mi porblema, la igual que a ivan, estoy realizando una aplicacion en en D7 y los IBX, me pas alo siguiente, tengo una relacion maestro detalle con dos tablas, Tavaluos(padre) y Tinvestigaciones(hijo), uso en ambas el commitretaining y el rollbackretaining, de hecho utilizo la tabla hijo e procedimientos internos y si salva datos, pero al dar post el la tabla padre decidi segui paso a paso el proceso de salvado , primero se "salva" de forma correcta el dato en el hijo, (lo observo en un watch debug, TInvestigacionesvalor1.value), cuando pasa el proceso por el post del padre, el watch me marca que el valor del hijo no me lo puede mostrar y posterior a este sucede que el valor del capo hijo aparece en 0 es decir nulo estos son los parametros de mi transacction

read_committed
rec_version
nowait

alguien que me pdiera orientar mas por favor estoy desesperado pk ya casi termino el proyecto y unicamente me falta este dato.

mil gracias
Responder Con Cita
  #17  
Antiguo 12-09-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Corrijanme si me equivoco.

Pero no puede haber hijos sin padres a menos que el padre se ala muerto.

Como se puede guardar un registro que depende directemente de un padre esto es imposible.

Y dejen de estar peleando por estupideces y dediquense ayudar.

Y les recomiendo que dejen de usar los ibx que ellos son el problema.

Tienen a ibObjects fiplus y otros que de verda si trabajan como unos maestros Y aun cometen el error de seguir usando esos compoenentes que lo unico que hacen es dar problemas.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #18  
Antiguo 14-09-2005
ronalg ronalg is offline
Miembro
 
Registrado: may 2003
Ubicación: Sucre - Bolivia
Posts: 68
Poder: 22
ronalg Va por buen camino
Y que paso, no volvimos criticones

Hola amigos, ye he trabajado durenta muchos años (ya perdí la cuenta creo que son 10) primero con interbase 4 (creo que ese era el que usaba en mi 486dx4) subiendo hasta el 6 open source desde delphi 3 hasta delphi 2005 y luego con firebird, usando el BDE, IBX, FIB, etc. Jamas en mi vida habia escuchado que se pierden datos y este hilo en mi opinion se salio de curso.
Creo que el fin de un foro es encontrar soluciones y dar opiniones y no atacar a tal o cual componente o tal o cual razón.
Si alguien tiene un problema ayudemos a resolverlo, pero el que pregunta POR MUY desesperado que este debe dar mas detalles del problema, sino solo podermos adivinar.

Concejo:
  1. No uses CommitRetaining cada vez que introduces un registro estas consumiendo tu ancho de banda que da gusto (la cabecera de los paquetes que van por la red se repite y tamaño del paquete es por lo general fijo y por lo tanto si lo mandas medio vacio estas desperdiciando tu ancho de vanda)
  2. Si deseas hacer usar CommitRetaining entonces prueba este codigo en el OnCloseQuery de la ventana principal
    Código Delphi [-]
    
    procedure TW_Principal.FormCloseQuery(Sender: TObject;
      var CanClose: Boolean);
    begin
         desconectar_bd;
    end;
    
    
    procedure TW_Principal.desconectar_bd;
    var i:Integer;
    begin
         for I:=0 TO MD_BD_TRANS.BD.TransactionCount-1 DO
         BEGIN
              if MD_BD_TRANS.BD.Transactions[i].InTransaction then
              begin
                   MD_BD_TRANS.BD.Transactions[i].Commit;
              end;
         END;
         MD_BD_TRANS.BD.Connected:=false;
    end;

Espero te sirva.

Adios
__________________
Saludos desde Sucre - Bolivia
"Si te lo puedes imaginar lo
puedes resolver" Pyriel
Responder Con Cita
  #19  
Antiguo 14-09-2005
ronalg ronalg is offline
Miembro
 
Registrado: may 2003
Ubicación: Sucre - Bolivia
Posts: 68
Poder: 22
ronalg Va por buen camino
Sigo Adivinando

Mira sigo adiviando cuidado con lo que haces al configura el componete IBTRANSACTION, sobre todo con las propiedades (las dos promeras afectan a la transaccion la útima dice cuando):
  1. AutoStopAction: Se dispara cuando el ultimo dataset de asosiado a la transaccion es cerrado.
  2. DefaultAction: Se dispara despues de la cantidad de SEgundos que especifica IdleTime
  3. IdleTime:Indica despues de que tiempo se disparará el evento asignado a DefaultAction (No recuerdo si esta en segundos o minutos)

Dale, sigue buscando el error.

Cuidates.
__________________
Saludos desde Sucre - Bolivia
"Si te lo puedes imaginar lo
puedes resolver" Pyriel
Responder Con Cita
  #20  
Antiguo 14-09-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
resp

disculpen si dije algo muy fuerte y son ocomo si atacara a componetes.
Quisas fuy muy directo en mi explicacion pero lo que quise decir es que si dichos compoentes le estan dando tantos problñemas y no los conocen tan a fondo usen otros que sean un poco mas intuitivos.

Pero si a la ley vamos todos son buenos y el problema radica en nosotros y no en los compoentes. Y que que queremos que los componentes hagan todo por nosotros.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
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 02:09:11.


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