Posts mit dem Label Trigger werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Trigger werden angezeigt. Alle Posts anzeigen

Donnerstag, 27. März 2014

Ausgeführte SQL-Statements ermitteln bzw. loggen

In speziellen Fällen ist es manchmal sinnvoll, wenn man gezielt Datenbankabfragen protokolliert.
Eine einfache Möglichkeit wäre ein Tabellen-Trigger, in dem das ausgeführte SQL-Statement ermittelt und beispielsweise in eine eigene Log-Tabelle geschrieben wird.

Ein Trigger, der als Ergebnis das ausgeführte Statement zurückgibt, könnte wie folgt erstellt werden.

CREATE TRIGGER GetSqlStatement
ON [dbo].[Produkte]
AFTER INSERT, UPDATE, DELETE
AS
BEGIN
DECLARE @TEMP TABLE
(EventType NVARCHAR(30), Parameters INT, EventInfo NVARCHAR(4000))
INSERT INTO @TEMP EXEC('DBCC INPUTBUFFER(@@SPID)')
SELECT EventInfo FROM @TEMP
END
GO


Wenn man nun ein DML-Statement wie z.B. ein Insert auf die entsprechende Tabelle absetzt, wird der Trigger ausgeführt und das gerade ausgeführte Statement zurückgegeben.

GetStatement


So hätte man die Möglichkeit direkt im Trigger das Statement (EventInfo) wie gewünscht zu protokollieren. Es würden so jegliche inhaltliche Änderungen der Daten gespeichert werden.

Freitag, 19. Juni 2009

FileUpload innerhalb eines UpdatePanels

Wenn man innerhalb eines Update-Panels einen FileUpload verwenden will, so muss man einen so genannten PostBackTrigger einbinden.

Ohne den Trigger kann die Datei nicht auf den Server hochgeladen werden. Der Grund hierfür ist, dass das Update-Panel ein Postback verhindert. Setzt man jedoch für den Upload-Button (der Button, auf dem die eigentliche Upload-Funktion liegt) einen Trigger, so wird ein Postback ausgeführt und die gewünschte Datei hochgeladen.

Beispiel: