FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Migrando triggers de Firebird a PostgreSQL
Hola a todos.
Antes que nada perdón por la extensión del mensaje. Estoy creando una nueva aplicación en la cual utilizo PostgreSQL 9.2. Estoy intentando utilizar la misma "logica" que utilizaba en Firebird, pero por lo visto no me funciona en PostgreSQL. Tengo una tabla Master llamada Albaranes y otra Detail llamada AlbaMov. Tengo definido unos triggers con sus correspondientes funciones, los cuales me actualizan la tabla Master al modificar algo en la tabla Detail. Todo funciona perfectamente excepto cuando quiero eliminar un registro de la tabla Master. Al eliminar un registro de la tabla Master, se eliminan todos los registros de la Detail y me actualiza un campo "Total" a 0 en la tabla Master, pero no se elimina el registro de la tabla Master. Si elimino el registro de la tabla Master sin registros en la tabla Detail, se elimina sin problemas. He estado haciendo pruebas y he visto que el problema está en el UPDATE a la tabla Master que se hace en una funcion a la que llamo CalculoAlbaranVenta. Este mismo sistema funciona perfectamente en Firebird. Esta funcion devuelve una variable de tipo %ROWTYPE la cual utilizo para actualizar una pantalla en PHP. Aqui os dejo la definicion de las tablas con sus triggers y funciones. Saludos y gracias por adelantado. Manuel Cuevas. -----------------------------------<>---------------------------------
-----------------------------------<>--------------------------------- Última edición por Casimiro Notevi fecha: 02-05-2013 a las 13:13:20. |
#2
|
||||
|
||||
Recuerda poner los tags al código fuente, ejemplo:
Gracias
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Gracias por la observación, no volvera a ocurrir
Continuando con el tema del borrado... Tengo una funcion la cual pasa un Albaran a una Factura y al final del todo elimina el Albaran, pues esa eliminacion funciona perfectamente. Despues de ver esto me he creado una funcion BorrarAlbaran en la cual solo tengo la SQL necesaria para borrarlo y NO FUNCIONA, pasa igual que si ejecuto la SQL desde cualquier cliente. ¿Por que funcionará desde dentro de esa funcion y no desde otra ? Saludos, Manuel Cuevas |
#4
|
||||
|
||||
Cita:
¿Cómo quieres que te ayuden con esa explicación?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Pues me gustaria saber como solucionar el problema que explico al inicio de este hilo.
|
#6
|
||||
|
||||
Te recomiendo que desactives todos los disparadores de la tabla detalle, entonces hagas más pruebas de eliminación de registros de la tabla maestra, y vayas activando uno a uno los disparadores, hasta que encuentres cuál disparador detona el problema y nos muestres su código aquí.
Resulta extraño que no surja ningún mensaje error (o al menos no nos has dicho si surje). Pareciera que uno de esos Updates actúa como Insert cuando el registro maestro ya no existe. Saludos. |
#7
|
|||
|
|||
Cita:
El problema está en este UPDATE, pero funciona bien ya que la tabla Maestra me la deja con los campos a 0. Este mismo codigo funciona perfectamente si voy eliminando las lineas de detalle una a una y no desde dentro del trigger BEFORE DELETE de la tabla maestra. Parece como si intentara un ultimo UPDATE cuando ya no existe el registro Maestro. Cita:
Tambien como he puesto en otro mensaje, tengo esta funcion desde la que se elimina el registro de la tabla Maestra sin ningun problema.
Saludos, |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Firebird : triggers | jmlifi | Varios | 1 | 12-08-2008 20:26:06 |
Migrando a Firebird | mjjj | Conexión con bases de datos | 6 | 26-09-2007 02:14:39 |
Triggers Firebird | Lynn | Firebird e Interbase | 6 | 24-09-2007 22:32:43 |
Disparo de triggers en Firebird | sur-se | Firebird e Interbase | 7 | 07-11-2006 10:38:24 |
migrando a firebird | JoseQ | Firebird e Interbase | 1 | 13-08-2004 02:49:47 |
|