Beispiel: Allgemeine Fehlerprüfung

<< 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]