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 05-09-2003
Hidalgo Hidalgo is offline
Registrado
 
Registrado: sep 2003
Ubicación: Cochabamba
Posts: 6
Poder: 0
Hidalgo Va por buen camino
Problemas de actualizacion Master-Detail

Hola, les comento que estoy trabajndo con base de datos Informix, aunque no creo que este el motor se mi problema, uso la version 5 de Delphi.

Estoy trabajando con los componentes TDatabase y me conecto por ODBC a mi base. Tengo una Tabla Master y varias tablas Detail que se relacionan con tres campos claves. Las Tablas detail estan relacionadas a sus respectivos DBGrids, cuando realizo inserciones nuevas trabaja sin problemas, pero cuando quiero modificar algun registro me salta un error "Couldn't perform the edit because another user changed the record".

No entiendo lo que sucede, porque he trabajo con otras tablas en otras aplicaciones de la misma manera y no tengo el error.

Por favor necesito una guia de porqué tengo este problemas, ya que he intendado con todo, creando mas tablas, no usando filtros, y otras que ya ni recuerdo y continua el error.

Gracias de Antemano
Responder Con Cita
  #2  
Antiguo 05-09-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Nunca he trabajado con Informix, pero el mensaje de error te está indicando que el registro que quieres modificar, ha variado desde la ultima vez que accedió el componente (por eso presupone que otro usuario lo ha modificado).

Está claro que tu problema no viene porqué otro usuario haya modificado el registro. Lo que puede pasar, es que tengas dos datasets apuntando a los mismos datos, si modificas los datos desde uno, cuando el otro intente modificar se encontrará con que los datos en la base de datos són distintos a los suyos, por lo que te saltará ese error.

También puede ser problema por culpa de un trigger. Haces algo en los registros detalles, estos mediante un trigger modifican el maestro. Entonces cuando intentes guardar el registro maestro, el dataset fallará puesto que encontrará diferencias en los datos.

Tienes que buscar algo de este estilo, que modifica los datos en la base de datos sin que se entere el correspondiente Dataset.

NOTA : Claro que también puede ser algún error del ODBC o de los componentes que usas. Puesto que nunca he utilizado Informix no lo puedo asegurar. Pero lo dudo, más bien tiene el aspecto que he comentado, de que algún proceso modifica los datos antes de guardar el registro.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 05-09-2003
Hidalgo Hidalgo is offline
Registrado
 
Registrado: sep 2003
Ubicación: Cochabamba
Posts: 6
Poder: 0
Hidalgo Va por buen camino
Gracias, pero al revisar mis enlaces no he descubierto nada de esto, incluso he creado tres tablas distintas para cada Detail, los tres Details estan enlazados por 3 campos claves que son los mismos en las tres tablas el master es un componente TQuery.

Estoy de acuerdo contigo que la base de datos Informix no sea el problema, es la forma que estoy enlazando o tratando los componentes TTable y TQuery con los TDBGrids.

Por si acaso estoy usando Transacciones Rollback y Commit.

Les agradeceria ma spistas para descubrir mi error.
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 14:37: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