![]() |
Autoincremental Firebird
Hola acabo de pasar una b.d. de paradox a firebird 1.5. Los campos autoincrementales de paradox se me han convertido en Triggers para que la aplicación pueda funcionar, pero cuando estos campos pertenecen a una clave primaria, el Trigger falla, y no me deja
Insertar, me salta este error: “Field CODIGO must have a value”. Claro, ya que no permite una clave en nulo. La tabla es esta: CREATE TABLE "ACTU_VINCULOS" ( "CODIGO" INTEGER NOT NULL /* "CODIGO" */ , "COD_REPRE" VARCHAR(10) /* "COD_REPRE" */ , "QUERYCAB" VARCHAR(100) /* "QUERY CAB" */ , "QUERYLIN" VARCHAR(100) /* "QUERY LIN" */ ); /* Indexes for table "ACTU_VINCULOS.DB" */ /* Found Index Primary Index For This Table, Options [ixPrimary,ixUnique] */ ALTER TABLE "ACTU_VINCULOS" ADD CONSTRAINT "ACTU_VINCULOS_PRIMARY" PRIMARY KEY ("CODIGO"); /* Generators for AutoInc fields for table "ACTU_VINCULOS.DB" */ /* SELECT max(ACTU_VINCULOS.DB.CODIGO) FROM ACTU_VINCULOS.DB */ CREATE GENERATOR "GEN_ACTU_VINCULOS_CODIGO"; SET GENERATOR "GEN_ACTU_VINCULOS_CODIGO" TO 15; SET TERM ^; CREATE TRIGGER "TRIG_ACTU_VINCULOS_BI" FOR "ACTU_VINCULOS" BEFORE INSERT AS BEGIN IF(NEW."CODIGO" IS NULL) THEN NEW."CODIGO" = GEN_ID("GEN_ACTU_VINCULOS_CODIGO",1); END ^ Alguien podría decirme por qué no se dispara el Trigger? Muchas gracias a todos. |
Checa Esto...
Pues a simple vista todo parece bien, no tendrás el trigger desactivado????
|
Cita:
Chequea el TField del DataSet, seguro que tienes la propiedad required=true del campo "CODIGO". Saludos.:rolleyes: |
Hola como haces la inserción, si usas sql directo no pongas ese campo en el insert.
El error te lo va a dar siempre que quieras modificar el valor de ese campo, aunque no pertenezca a una clave primaria. Si usas componentes como IBDataset, hay una propiedad "GeneratorField" donde se indica el campo autoincremental y el metodo para el mismo, además tenes que configurar las sentecias insert, update, etc para que no modifiquen ese campo. |
| La franja horaria es GMT +2. Ahora son las 12:15:30. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi