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 04-04-2006
jsanchez jsanchez is offline
Miembro
 
Registrado: may 2003
Posts: 90
Poder: 21
jsanchez Va por buen camino
Problema entre distintas CPU's

Hola foro,

Se me presentó un problema,

Yo trabajo con FireBird 1.5, y en delphi utilizo el BDE.

Tengo dos Tablas maestro-detalle, se puede decir que: factura y detalle_factura, las dos tablas tienen sus llaves primarias codigo, y detalle_factura tiene una referencia a factura con el campo código.

Hay un proceso en el cierre que pasa al histórico_factura y historico_detalle_factura, con la misma estructura de llaves primarias y referenciales. Este proceso se hace en una transacción por si hay algún problema poder hacer el rollback. En el ordenador que programo no hay ningún problema y a la hora de hacer el paso al historico lo hace. Lo probé en otro ordenador, también en local, la misma base de datos, evidentemente el mismo ejecutable, y cuando va a pasar al historico, al hacer el insert en la tabla historico_detalle_factura, me dice que se ha violado la llave referencial, habiendose hecho previamente el paso a la tabla Historico_factura, eso si, dentro de una transacción.

Lo que no entiendo es porque en un ordenador si funciona y en otro no.

Si alguien me pudiera ayudar, lo agradecería.


Gracias por la ayuda.
Responder Con Cita
  #2  
Antiguo 07-04-2006
ggram2 ggram2 is offline
Miembro
 
Registrado: sep 2005
Posts: 47
Poder: 0
ggram2 Va por buen camino
Talking

Para tratar de enterle la pregunta seria bueno conocer que componentes usa, Lo que se supone es que el detalle haga Post primero que el master y por eso sale el mensaje.
Responder Con Cita
  #3  
Antiguo 07-04-2006
jsanchez jsanchez is offline
Miembro
 
Registrado: may 2003
Posts: 90
Poder: 21
jsanchez Va por buen camino
No utilizo controles como tales, sino que utilizo variables tQuery y le doy open para consultas y execSQL para ejecutar inserts.

Tengo que insertar primero el maestro porque tiene que estar el codigo de referncia en la tabla maestro y luego inserto el detalle. Esto está dentro de una transacción, si todo sale bien, se hace el commit, si no el rollback. Esto funciona bien en un ordenador, pero en otro ordenador al ejecutarlo sale que se está violando un constraint.
Responder Con Cita
  #4  
Antiguo 07-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Si has copiado la definicion de la tabla factura (con sus generadores) para hacer la tabla factura_histórico, no puedes pasarle el número del generador a la tabla de histórico, (porque esa tiene su propio generador), o incluso puede estar cogiendo el generador de la tabla factura (cuando debía coger el generador de la tabla factura_historico).

Sin tener mucha experiencia, creo que la tabla de histórico no debe tener generadores (al menos que tenga un campo aparte que sea la clave primaria), así puedes copiar los autoincrementales perfectamente.

La tabla detalle_factura si tendrá su generador, pero detalle_factura_historico no debe tenerlo. Este caso es más fácil de entender, el generador de detalle_factura puede ir por 2.000 y sin embargo en detalle_factura_historico puede estar a cero.

Saludos y espero se me entienda...que no se yo....
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Problema entre query y sentencia sql ilichhernandez Conexión con bases de datos 1 17-11-2005 21:00:05
Problema al pasar datos entre 2 formas maguib Varios 6 10-03-2005 20:19:33
conexión entre distintas bases de datos jsanchez Firebird e Interbase 1 09-03-2004 22:35:22
Problema entre quickReport y Lexmar / HP cisterpe Impresión 2 26-02-2004 07:59:29
diferencia entre las distintas tecnologias que usa el delphi en trabajo con BD viajero2015 Conexión con bases de datos 0 27-09-2003 20:47:42


La franja horaria es GMT +2. Ahora son las 15:11:15.


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