我需要从表中验证动态字段。例如:
CREATE TRIGGER BU_TPROYECTOS FOR TPROYECTOS
BEFORE UPDATE AS
DECLARE VARIABLE vCAMPO VARCHAR(64);
BEGIN
/*In then table "TCAMPOS" are the fields to validate*/
for Select CAMPO from TCAMPOS where TABLA = TPROYECTOS and ACTUALIZA = 'V' into :vCAMPO do
Begin
if (New.:vCAMPO <> Old.:vCampo) then
/*How i get dynamic New.Field1, New.Field2 on query return*/
End;
END ;
问题是:我怎样才能把#34;查询返回的字段的名称&#34;在上面的代码中。
即如果查询返回field1和field5,我会把触发器
if ( New.Field1 < > Old.Field1 ) or ( New.Field5 < > Old.Field5 ) then
答案 0 :(得分:0)
Firebird中没有这样的功能。您将需要创建(并且最好)生成将引用硬编码的所有字段的触发器。如果基础表发生更改或验证要求,则需要重新创建触发器以考虑添加或删除的字段。