<< Click to Display Table of Contents >> Navigation: Einrichtung > DataNAUT Watchdog > Erweiterte Einstellungen > SQL-Skripte > Beispiel: Allgemeine Fehlerprüfung |
In diesem Beispiel wird die Übergabe von Daten aus dem Datencursor von SQL-Skripten an den Watchdog zum Zweck des E-Mail-Versands verdeutlicht.
Das standardmäßig mitgegebene Skript „001 - Allgemeine Fehlerprüfung.sql“ selektiert vom DataNAUT berichtete Fehler aus der Log-Datenbank. Dieses Skript können Sie kopieren und an Ihre eigenen Bedürfnisse anpassen.
Der nachfolgend aufgeführte Text besteht aus einzelnen Segmenten des betreffenden SQL-Skripts, welcher in seiner Gesamtfunktion eine Datenmenge als Grundlage für den Versand der per E-Mail zu berichtenden Meldungen liefert und dann abschließend die Daten durch ein Kennzeichen in der Datenbank als „erfolgreich gemeldet“ abquittiert.
▪Unnötige Meldungen an den Client deaktivieren: Die Option bewirkt, dass bei Transaktionen nicht mehr die Menge an genutzten Zeilen an den Client übertragen werden, was Zeit spart.
SET NOCOUNT ON |
•Erstellen einer temporären Tabelle: Es wird eine temporäre Tabelle erstellt, welche die Spalte Entry_ID enthält, um jeden Eintrag einmalig zu speichern. Diese ID wird beim Anlegen der Tabelle daher als Unikat-Merkmal deklariert und stellt den Primärschlüssel dar.
DECLARE @List TABLE ( [Entry_ID] UNIQUEIDENTIFIER ) |
•Einfügen der neuen Entry_IDs aus der Tabelle FullEntry: Es werden alle Entry_IDs aus der Tabelle FullEntry kopiert, die noch nicht übertragen wurden und die entsprechende Prioritätsstufe haben. Einträge gelten gemäß DataNAUT Spezifikation dann als Fehler, wenn Ihre Priorität höher als 3 ist.
INSERT INTO @List SELECT ful.[Entry_ID] FROM [FullEntry] ful WHERE ful.[SeverityPriority] > 3 AND ful.[Reported] = 0 |
•Erstellen des Cursors: Anhand der Entry_ID werden die restlichen Informationen der Datensätze selektiert. Dabei werden die Einträge nach ihrer EntrySequence (Eintragungsreihenfolge) sortiert. Die selektierten Informationen werden als Datencursor an den Watchdog zurückgegeben.
SELECT ful.* FROM @List lst INNER JOIN [FullEntry] ful ON ful.[Entry_ID] = lst.[Entry_ID] ORDER BY [EntrySequence] |
•Aktualisieren der Datensätze in der Tabelle Entry: Die Tabelle Entry stellt eine vereinfachte Version der Tabelle FullEntry dar. Bei allen Datensätzen mit der gleichen ID wie in der temporären Tabelle, wird der Wert Reported auf 1 gesetzt. Das bedeutet, dass diese Einträge verarbeitet bzw. berichtet wurden.
UPDATE ent SET [Reported] = 1 FROM @List lst INNER JOIN [Entry] ent ON ent.[Entry_ID] = lst.[Entry_ID] |