FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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.
|
#3
|
|||
|
|||
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. |
#4
|
||||
|
||||
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. |
|
|
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 |
|