Ver Mensaje Individual
  #9  
Antiguo 21-08-2006
berfer berfer is offline
Miembro
 
Registrado: ago 2006
Posts: 35
Reputación: 0
berfer Va por buen camino
Hola jacanche:

Tengo esta estructura de tabla,
(codigo)
CREATE TABLE AARTICUL (
CODART CHAR(13) NOT NULL,
NOMART VARCHAR(80) NOT NULL,
FAMILI CHAR(5) NOT NULL,
SUBFAM CHAR(3) NOT NULL,
PRECIO NUMERIC(15,2) NOT NULL,
IVAVEN CHAR(3) NOT NULL,
RETVEN CHAR(3),
DTOVEN NUMERIC(6,2) NOT NULL,
IVACOM CHAR(3) NOT NULL,
RETCOM CHAR(3),
DTOCOM NUMERIC(6,2) NOT NULL,
USER_CREATED CHAR(20) NOT NULL,
DATE_CREATED DATE NOT NULL,
USER_UPDATED CHAR(20) NOT NULL,
DATE_UPDATED DATE NOT NULL
);


/******************************************************************************/
/**** Primary Keys ****/
/******************************************************************************/
ALTER TABLE AARTICUL ADD CONSTRAINT PK_AARTICUL PRIMARY KEY (CODART);

/******************************************************************************/
/**** Foreign Keys ****/
/******************************************************************************/
ALTER TABLE AARTICUL ADD CONSTRAINT FK_AARTICUL FOREIGN KEY (FAMILI) REFERENCES AFAMILIA (CODIGO);
ALTER TABLE AARTICUL ADD CONSTRAINT FK_AARTICUL1 FOREIGN KEY (SUBFAM, FAMILI) REFERENCES ASUBFAMI (CODIGO, CODFAM);
ALTER TABLE AARTICUL ADD CONSTRAINT FK_AARTICUL2 FOREIGN KEY (IVAVEN) REFERENCES ATIPOIMP (CODIGO);
ALTER TABLE AARTICUL ADD CONSTRAINT FK_AARTICUL3 FOREIGN KEY (RETVEN) REFERENCES ATIPOIMP (CODIGO);
ALTER TABLE AARTICUL ADD CONSTRAINT FK_AARTICUL4 FOREIGN KEY (IVACOM) REFERENCES ATIPOIMP (CODIGO);
ALTER TABLE AARTICUL ADD CONSTRAINT FK_AARTICUL5 FOREIGN KEY (RETCOM) REFERENCES ATIPOIMP (CODIGO);

/******************************************************************************/
/**** Triggers ****/
/******************************************************************************/

SET TERM ^ ;


/* Trigger: AARTICUL_BI0 */
CREATE TRIGGER AARTICUL_BI0 FOR AARTICUL
ACTIVE BEFORE INSERT POSITION 0
AS
begin
if (new.user_created is null) then
new.user_created= user;
if (new.user_updated is null) then
new.user_updated = user;
if(new.date_created is null) then
new.date_created = 'NOW';
if(new.date_updated is null) then
new.date_updated = 'NOW';
end
^
/* Trigger: AARTICUL_BU */
CREATE TRIGGER AARTICUL_BU FOR AARTICUL
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
new.user_updated= user;
new.date_updated='NOW';
end
^

SET TERM ; ^

(/codigo)

Entonces como puedes ver tanto el usuario que crea el registro como la fecha de creacion y el usuario que modifica y la fecha en la cual es modificado lo controlo por un disparador, pero resulta que si meto los datos de forma manual en ibexper me deja tocar esos campos cuando yo no quiero que el usuario pueda hacer nada sobre ellos.

La solucion que me dabas del grant insert etc etc es buena pero tiene el problema que tu mismo has podido ver, que me daria un fallo al lanzar el disparador.

Si se te ocurre alguna otra cosa pues te agradeceria que me dijeras.

Espero que con la estructura de la tabla todos podamos entender un poco mejor cual es mi problema, gracias.
Responder Con Cita