FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Otra de updates
Hola amigos, de nuevo tengo problemas con el SQL, ahora estoy intentando que cuando me insertan un registro nuevo en una tabla, un campo de esta se actualize con el valor de un campo que esta en otra tabla distinta, he intentado hacerlo con un trigger, pero el interbase me dice que no puedo hacer un subselect dentro del trigger, teneis alguna idea de como deberia hacerse?
Gracias. |
#2
|
||||
|
||||
Sinceramente desconozco la potencialidad de los triggers de interbase, pero me parece raro que no puedas hacer algo tan sencillo, es mas la única solución a tu problema desde el lado del servidor, es la utilización de triggers!.. A no ser que plantees diferente el problema, o el valor sea constante y puedas usar Default Values.
Me parece que este hilo tendrías que haberlo posteado en el foro Interbase & Firebird. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
Me parecia mas un problema de SQL que de interbase, ya que teoricamente el SQL es estandard, yo queria que alguien me diera una idea de como tendria que ser ese trigger y probarlo, si despued no funciona en interbase, ya me busco la vida, yo he probado lo siguiente:
create trigger actualiza on tabla1 as begin campo_destino = select campo_origen from tabla2 where tabla2.codigo_tabla2=tabla1.ref_tabla2; end; Tocaria funcionar no? |
#4
|
||||
|
||||
Te reitero que desconozco Interbase, pero de todos modos esta línea no me parece correcta:
Cita:
Código:
... Valor Varchar2(..) BEGIN SELECT CAMPO INTO Valor FROM TABLA2 WHERE ID=:NEW.RELACIO_A_TABLAD2; :NEW.VALOR_TABLA2 := Valor; END; La sintaxis de los triggers, sueles ser bastante particular para cada motor, y no es soportada por SQL ANSI 92, por eso la sugerencia del foro. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
|||
|
|||
Bueno, todo son ejemplos de codigo je,je
me puedo equivocar..... Gracias, ha funcionado perfectamente, con interbase, aqui pongo el codigo por si alguien busca lo mismo Código:
set term!!; create trigger actu for lineamaterial before insert as declare variable preu numeric(15,2); begin select preubase from material where lineamaterial.idmaterial=material.idmaterial into :preu; new.preucost=preu; end!! |
|
|
|