FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Error Raro al Usar IBX's sobre Firebird 2.0
Desinstale Firebird 1.53 para instalar la versión final 2.0, al querer abrir un Dataset manualmente (IBX's) me salta el siguiente error al abrir dicho dataset:
Código:
Exception class EIBInterbaseError with message 'attempted update of read-only column' Será que ya llego el Final por completo para los IBX's apartir de la Versión 2.0 de Firebird???? Agradezco cualquier sugerencia
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King |
#2
|
||||
|
||||
Que Raro
El problema ahora se debe a un trigger que tengo, al estar investigando me encontre que el error se debía a que :
Código:
In Firebird 2.x I'm getting the error "General SQL error. Attempted update of read-only column" in code that used to work in v.1.5.3. I'm not using any computed fields. Is this a bug? You have a trigger somewhere that is referring to a NEW or OLD context variable in the wrong context. From v.2.0, you will get this exception if, for example, you try to assign to NEW.Afield in an After Update trigger. Código:
This column cannot be updated because it is derived from an SQL function or expression. attempted update of read-only column.
Al recompilar el trigger ya no me marca error, ya no esta permitido asignar Nulos a los campos DATE ???? Previamente Hize un BackUp y un Restore con la versión 2.0 de Firebird
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King Última edición por AGAG4 fecha: 14-11-2006 a las 18:35:05. |
#3
|
|||
|
|||
yo pensaba que como ibx esta ya bastante tiempo abandonado , no era compatible con firebird 2.0 ,
no sera eso ?. |
#4
|
||||
|
||||
Ya comprobe....
Ya comprobe que no son los IBX's, es problema de la versión 2.0, como comente arriba, tengo un trigger que se dispara en el After Update de una tabla y al recompilarlo me marca ese error, y si desabilito la linea:
Código:
/* New.FECINI_PROM = Null;*/ Lo que me hace falta es CREAR de nuevo la Base de Datos desde cero y pasar los datos con el DataPump, espero que con esto quede resuelto....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King |
#5
|
||||
|
||||
Version 2
Revivo este antiguo hilo para comentar que me ha pasado lo mismo ahora mismo...
Resulta que no se puede asignar un nuevo valor de la tabla afectada en un trigger AFTER UPDATE. Cita:
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
#6
|
||||
|
||||
Precisamente es eso mismo lo que estamos revisando en nuestras bases de datos para pasar definitivamente a la versión 2 a nuestros clientes.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
||||
|
||||
Que casualidad. Va a resultar que yo también soy "divino"
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
#8
|
||||
|
||||
Por supuesto, nadie lo duda
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
Entonces a fuerzas se tienen que modificar los Trigger's donde hay asignaciones en campos de tablas ????
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King |
#10
|
||||
|
||||
Tal como comenta el texto que puse como referencia, en los triggers AFTER UPDATE, no se pueden asignar valores a la tabla en cuestión, dado que el mismo Firebird salta con el error relatado.
De hecho, yo cuando modifico un trigger, este se compila bien, pero cuando le doy al commit para que queden registrados los cambios del procedure, es cuando salta el error. Cita:
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
#11
|
||||
|
||||
Resp
Ibx no tiene un buen soporte para firebird 2.x les puede suceder cualquier cosa rara.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#12
|
|||
|
|||
ocurre cuando
Esto ocurre cuando utilizas la variable new en los trigers y le asignas valor, no solamente cuando le asignas null,
Última edición por madmai fecha: 24-01-2008 a las 12:48:26. |
#13
|
||||
|
||||
Aplicad la lógica:
En un trigger BEFORE insert, todavía no ha ocurido la inserción, por eso no tiene sentido la variable old, porque "antes" del trigger, no hay valores. En un trigger AFTER insert, ya ha ocurrido la acción de inserción/borrado o lo que sea...., no tiene sentido la variable New. Un BEFORE UPDATE podría confundir, porque realmente si tiene valores antes y después del Trigger, pero Firebird funciona así. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#14
|
||||
|
||||
Cita:
Cita:
En el before/after update está disponible tanto el registro NEW como el OLD. En el befire pueden modificarse los valores del NEW, no así en el after. Los valores del OLD no pueden modificarse nunca. En el before/after delete está disponible el registro OLD, pero no puede modificarse bajo ninguna circunstancia. Hasta ahora descubro que versiones anteriores de firebird no daban error cuándo se trataba de modificar estos valores. No recuerdo haberme topado nunca con esos errores al cambiar de versión del motor. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#15
|
||||
|
||||
Pos eso, lo que yo dije
Mi comentario es más bien una regla nemotécnica. Cuando leí esas normas de funcionamiento por primera vez, de manos de Hellen Borrie en un perfecto inglés , me hice tal lío mental que tuve que buscarle "una regla". Cuando digo "no tiene sentido" me refiero a "no tiene sentido la modificación de esa variable". Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#16
|
||||
|
||||
Tomado del release Notes de firebird 2.0
"OLD Context Variables Now Read-only D. Yemanov The set of OLD context variables available in trigger modules is now read-only. An attempt to assign a value to OLD.something will be rejected. Note: NEW context variables are now read-only in AFTER-triggers as well." Pag 51. |
#17
|
||||
|
||||
Más Claro que el agua no pudo estar....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King |
#18
|
||||
|
||||
En que lio me metio firebird, tengo que cambiar todas las modificaciones de todos los triggers del after update al before update
Disculpen la tardanza pero estoy retomando esto de nuevo....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error Raro sobre archivo "ntdll.dll" que no consigo encontrar el motivo | AGAG4 | Impresión | 1 | 23-11-2007 08:11:17 |
Error Firebird sin Explicacion , Demasiado Raro | hot1974 | Firebird e Interbase | 10 | 05-10-2006 16:44:35 |
Comportamiento raro de Firebird en Starting With | AGAG4 | Firebird e Interbase | 6 | 07-06-2006 17:10:56 |
Un error raro..... | Rafe | Varios | 3 | 29-07-2005 00:07:02 |
URGENTE: Error raro en Firebird | burasu | Firebird e Interbase | 3 | 14-07-2004 14:19:25 |
|