Urgente - Trigger

27/10/2004 - 19:07 por Fabian | Informe spam
Hola Grupo:

Tengo un problemilla, genere una auditoria para las tablas, y ademas utilizo
un ADP como aplicacion, el problema esta que cuando inserto un registro da
el sig. mensaje.
"los datos se agregaron a la base de datos pero no se mostraran porque no
satisfacen el origen de datos"

los datos se agregar y si cerras el form y lo volves a abrir se ve el
registro ingresado, si saco el trigger no da este error.

La funcion del trigger es solamente hacer un insert en una tabla del usuario
que realizo la accion, que tipo de accion y la fecha.

Gracias desde ya!!!

Preguntas similare

Leer las respuestas

#1 Maxi
27/10/2004 - 19:10 | Informe spam
Fabian, podrias mostrar como esta el Trigger?

pusistes el SET NOcount?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Fabian" escribió en el mensaje
news:
Hola Grupo:

Tengo un problemilla, genere una auditoria para las tablas, y ademas


utilizo
un ADP como aplicacion, el problema esta que cuando inserto un registro da
el sig. mensaje.
"los datos se agregaron a la base de datos pero no se mostraran porque no
satisfacen el origen de datos"

los datos se agregar y si cerras el form y lo volves a abrir se ve el
registro ingresado, si saco el trigger no da este error.

La funcion del trigger es solamente hacer un insert en una tabla del


usuario
que realizo la accion, que tipo de accion y la fecha.

Gracias desde ya!!!







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004
Respuesta Responder a este mensaje
#2 Fabian
27/10/2004 - 19:26 | Informe spam
probe el set nocount pero es igual


CREATE TRIGGER TIUD_tblempresa_Auditoria ON tblempresa FOR INSERT, UPDATE,
DELETE
AS


DECLARE @AudGuid UNIQUEIDENTIFIER -- Id asignado en tblAuditoria


IF NOT EXISTS(SELECT * FROM INSERTED) -- DELETE
BEGIN
SET @AudOperacion='D'

END
ELSE IF NOT EXISTS(SELECT * FROM DELETED) -- INSERT
BEGIN
SET @AudOperacion='I'

END
ELSE -- UPDATE
BEGIN
SET @AudOperacion='U'

END

SET @AudGuid = NEWID()
INSERT
INTO tblAuditoria
(AudGuid, AudTablaOrigen, AudUsuario, AudOperacion, AudFecha)

VALUES( @AudGuid, 'tblempresa', SYSTEM_USER, @AudOperacion, GETDATE())

IF @AudOperacion = 'I'
BEGIN

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorPosterior)
SELECT @AudGuid, EmpGuid, 'EmpId', CAST(EmpId AS VARCHAR) FROM INSERTED

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorPosterior)
SELECT @AudGuid, EmpGuid, 'EmpNombre', CAST(EmpNombre AS VARCHAR) FROM
INSERTED

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorPosterior)
SELECT @AudGuid, EmpGuid, 'EmpAbrev', CAST(EmpAbrev AS VARCHAR) FROM
INSERTED



END

IF @AudOperacion = 'D'
BEGIN

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorAnterior)
SELECT @AudGuid, EmpGuid, 'EmpId', CAST(EmpId AS VARCHAR) FROM DELETED

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorAnterior)
SELECT @AudGuid, EmpGuid, 'EmpNombre', CAST(EmpNombre AS VARCHAR) FROM
DELETED

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorAnterior)
SELECT @AudGuid, EmpGuid, 'EmpAbrev', CAST(EmpAbrev AS VARCHAR) FROM
DELETED



END

IF @AudOperacion = 'U'
BEGIN

IF UPDATE(EmpId)
BEGIN
INSERT INTO tblMovAuditoria (AudGuid , MauCampo, MauGuidOrigen,
MauValorAnterior, MauValorPosterior)
SELECT @AudGuid, 'EmpId', D.EmpGuid, + CAST(D.EmpId AS VARCHAR),
CAST(I.EmpId AS VARCHAR) FROM DELETED D INNER JOIN INSERTED I ON I.EmpGuid D.EmpGuid
END

IF UPDATE(EmpNombre)
BEGIN
INSERT INTO tblMovAuditoria (AudGuid , MauCampo, MauGuidOrigen,
MauValorAnterior, MauValorPosterior)
SELECT @AudGuid, 'EmpNombre', D.EmpGuid, + CAST(D.EmpNombre AS
VARCHAR), CAST(I.EmpNombre AS VARCHAR) FROM DELETED D INNER JOIN INSERTED I
ON I.EmpGuid = D.EmpGuid
END

IF UPDATE(EmpAbrev)
BEGIN
INSERT INTO tblMovAuditoria (AudGuid , MauCampo, MauGuidOrigen,
MauValorAnterior, MauValorPosterior)
SELECT @AudGuid, 'EmpAbrev', D.EmpGuid, + CAST(D.EmpAbrev AS
VARCHAR), CAST(I.EmpAbrev AS VARCHAR) FROM DELETED D INNER JOIN INSERTED I
ON I.EmpGuid = D.EmpGuid
END



END






"Maxi" escribió en el mensaje
news:%
Fabian, podrias mostrar como esta el Trigger?

pusistes el SET NOcount?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Fabian" escribió en el mensaje
news:
> Hola Grupo:
>
> Tengo un problemilla, genere una auditoria para las tablas, y ademas
utilizo
> un ADP como aplicacion, el problema esta que cuando inserto un registro


da
> el sig. mensaje.
> "los datos se agregaron a la base de datos pero no se mostraran porque


no
> satisfacen el origen de datos"
>
> los datos se agregar y si cerras el form y lo volves a abrir se ve el
> registro ingresado, si saco el trigger no da este error.
>
> La funcion del trigger es solamente hacer un insert en una tabla del
usuario
> que realizo la accion, que tipo de accion y la fecha.
>
> Gracias desde ya!!!
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004


Respuesta Responder a este mensaje
#3 Maxi
27/10/2004 - 19:59 | Informe spam
mmm, si haces el insert desde el Query analizer que sucede? me da la
sensacion que es un problema del ADP


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Fabian" escribió en el mensaje
news:%
probe el set nocount pero es igual


CREATE TRIGGER TIUD_tblempresa_Auditoria ON tblempresa FOR INSERT, UPDATE,
DELETE
AS


DECLARE @AudGuid UNIQUEIDENTIFIER -- Id asignado en tblAuditoria


IF NOT EXISTS(SELECT * FROM INSERTED) -- DELETE
BEGIN
SET @AudOperacion='D'

END
ELSE IF NOT EXISTS(SELECT * FROM DELETED) -- INSERT
BEGIN
SET @AudOperacion='I'

END
ELSE -- UPDATE
BEGIN
SET @AudOperacion='U'

END

SET @AudGuid = NEWID()
INSERT
INTO tblAuditoria
(AudGuid, AudTablaOrigen, AudUsuario, AudOperacion, AudFecha)

VALUES( @AudGuid, 'tblempresa', SYSTEM_USER, @AudOperacion, GETDATE())

IF @AudOperacion = 'I'
BEGIN

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorPosterior)
SELECT @AudGuid, EmpGuid, 'EmpId', CAST(EmpId AS VARCHAR) FROM INSERTED

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorPosterior)
SELECT @AudGuid, EmpGuid, 'EmpNombre', CAST(EmpNombre AS VARCHAR) FROM
INSERTED

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorPosterior)
SELECT @AudGuid, EmpGuid, 'EmpAbrev', CAST(EmpAbrev AS VARCHAR) FROM
INSERTED



END

IF @AudOperacion = 'D'
BEGIN

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorAnterior)
SELECT @AudGuid, EmpGuid, 'EmpId', CAST(EmpId AS VARCHAR) FROM DELETED

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorAnterior)
SELECT @AudGuid, EmpGuid, 'EmpNombre', CAST(EmpNombre AS VARCHAR) FROM
DELETED

INSERT INTO tblMovAuditoria (AudGuid , MauGuidOrigen, MauCampo,
MauValorAnterior)
SELECT @AudGuid, EmpGuid, 'EmpAbrev', CAST(EmpAbrev AS VARCHAR) FROM
DELETED



END

IF @AudOperacion = 'U'
BEGIN

IF UPDATE(EmpId)
BEGIN
INSERT INTO tblMovAuditoria (AudGuid , MauCampo, MauGuidOrigen,
MauValorAnterior, MauValorPosterior)
SELECT @AudGuid, 'EmpId', D.EmpGuid, + CAST(D.EmpId AS VARCHAR),
CAST(I.EmpId AS VARCHAR) FROM DELETED D INNER JOIN INSERTED I ON I.EmpGuid
> D.EmpGuid
END

IF UPDATE(EmpNombre)
BEGIN
INSERT INTO tblMovAuditoria (AudGuid , MauCampo, MauGuidOrigen,
MauValorAnterior, MauValorPosterior)
SELECT @AudGuid, 'EmpNombre', D.EmpGuid, + CAST(D.EmpNombre AS
VARCHAR), CAST(I.EmpNombre AS VARCHAR) FROM DELETED D INNER JOIN INSERTED
I
ON I.EmpGuid = D.EmpGuid
END

IF UPDATE(EmpAbrev)
BEGIN
INSERT INTO tblMovAuditoria (AudGuid , MauCampo, MauGuidOrigen,
MauValorAnterior, MauValorPosterior)
SELECT @AudGuid, 'EmpAbrev', D.EmpGuid, + CAST(D.EmpAbrev AS
VARCHAR), CAST(I.EmpAbrev AS VARCHAR) FROM DELETED D INNER JOIN INSERTED I
ON I.EmpGuid = D.EmpGuid
END



END






"Maxi" escribió en el mensaje
news:%
Fabian, podrias mostrar como esta el Trigger?

pusistes el SET NOcount?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Fabian" escribió en el mensaje
news:
> Hola Grupo:
>
> Tengo un problemilla, genere una auditoria para las tablas, y ademas
utilizo
> un ADP como aplicacion, el problema esta que cuando inserto un registro


da
> el sig. mensaje.
> "los datos se agregaron a la base de datos pero no se mostraran porque


no
> satisfacen el origen de datos"
>
> los datos se agregar y si cerras el form y lo volves a abrir se ve el
> registro ingresado, si saco el trigger no da este error.
>
> La funcion del trigger es solamente hacer un insert en una tabla del
usuario
> que realizo la accion, que tipo de accion y la fecha.
>
> Gracias desde ya!!!
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004











Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida