Automatisiertes Versenden von Abfrage- Ergebnissen

Ähnliche Dokumente
Automatisiertes Prüfen des DeltaMaster Services

Modellierung in SAP HANA Teil 2

Zeitabhängige Spaltennamen

Volle Ressourcenkontrolle

Wo gehören Vorschlagswerte hin? Richtiger Import von Vorschlagswerten in Hybrid-Planungssysteme

Netzwerk-Visualisierung in DeltaMaster How To

Datenladen auf Anforderung eine Übersicht

-Machen.

PHP- Umgang mit Datenbanken (1)

Benachrichtigungen. Installation und Konfiguration. Version 2017 Summer Release

CLR-Integration im SQL-Server. Alexander Karl

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach)

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

Der kleine Process zwischendurch

Umwandlung von Parent Child - zu ragged Hierarchien

Aktualisierungsinstruktionen von R5.x auf R6.0

Folien php/mysql Kurs der Informatikdienste

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Übersicht der wichtigsten MySQL-Befehle

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1

Neuerungen in Marco Patzwahl MuniQSoft GmbH Unterhaching

Workbooster PROFFIX MassenMailer. Mit dem Workbooster PXMassenMailer Auftragsdokumente ganz einfach als PDF versenden

Dokumentation QuickHMI Datenbanken Datenquelle

MySQL: Einfache Subqueries.

Dr. Arno Schmidhauser Letzte Revision: November Webseite:

Vokabulare für Synonyme und Autovervollständigung. Version 2016 Fall Release

Mails in Python senden

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli MySQL-Job-Automation

Wie erreiche ich was?

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

SQL Server 2012 Express

5.8 Bibliotheken für PostgreSQL

MySQL. MySQL ist ein Datenbanksystem. Es besteht aus einem zentralen Server und aus (mehreren) Clients. Es benutzt einen Dialekt der Sprache SQL.

sm-client Projekt Aktualisierungsinstruktionen für R2.0.4 Finale Version SSK / BSV eahv/iv

WEKA Honorarabrechnung leicht gemacht manuelle Installation vom MS-SQL Server 2014 SP2 Express Stand 06/2018

Installation von ib-normcad 11 unter rz-industriebau 2012

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Roland Tilgner. Solution Architects & Team Coaching DEVELOPMENT. ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten

Inhaltsverzeichnis. Vorwort 13

Oracle Database Vault Beispiele zur Benutzung

Entwicklungsumgebung für die Laborübung

sm-client Projekt Aktualisierungsinstruktionen von R2.x auf R3.0 Finale Version SSK / BSV eahv/iv

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

SharePoint Online Connector

Oracle & Java HOW TO

MySQL Queries on "Nmap Results"

PostgreSQL unter Debian Linux

Installation MySQL Replikationsserver

Oracle 10g Einführung

1.1 Datenbankprogramm Oracle für MCIS MDA

desk.modul : WaWi- Export

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

SQL-INJECTIONS. N E T D E V E L O P E R S G R O U P B E R L I N B R A N D E N B U R G,

Konfiguration der SMTP-Verbindung... 5 Einstellungen speichern / laden... 6 Versenden von Paketen... 6

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Rolf Däßler. Das Einsteigersem. MySQL 5

R, Rattle und SQL Jeder sammelt Daten. Was tun Sie damit?

Datenmanagement I SoSe 2006 Aufgabenblatt 4

Multimedia im Netz Wintersemester 2013/14. Übung 02 (Hauptfach)

Export veränderter Daten aus Sisis mit Hilfe des Sybase XPServer

ODBC Was ist das? ODBC Treiber installieren ODBC-Zugriff einrichten ODBC Zugriff mit Excel ODBC Zugriff mit Word...

<Insert Picture Here> Security-Basics. Privilegien, Rollen, SQL und PL/SQL - inkl. 12c-Update. Carsten Czarski, ORACLE Deutschland B.V. Co.

Username and password privileges. Rechteverwaltung. Controlling User Access. Arten von Rechten Vergabe und Entzug von Rechten DBS1 2004

COSYNUS Backend Communication Server Christian Baumgartner, Senior IT-Consultant. Kommunikation verbindet. Wir verbinden die Kommunikation.

Versand von Newslettern aus Sage CRM mit MailChimp

Tutorial: Anbindung einer SQL-Datenquelle. Version: 1.1 Autoren: David Haasler, Stefan Suermann

Datenbanken Einführung Seite 1 von 7

Nachstehend finden Sie eine detaillierte Schritt für Schritt Anleitung um Ihren -Account in Mozilla Thunderbird einzurichten.

Schnellübersichten. SQL Grundlagen und Datenbankdesign

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

Easylog Sendungsbenachrichtigung

Wie erreiche ich was?

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

ASP-Mail Kurzanleitung

Datenbank und Tabelle mit SQL erstellen

Intouch von DDE zu OPC

MAILBENACHRICHTIGUNG EINRICHTEN EINER SQL-

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Wie erreiche ich was?

Anleitung zum Austausch des CS- Postleitzahlenverzeichnisses (plz-datenbank) für Microsoft SQL Server

Whitepaper. Produkt: combit Relationship Manager 5. Import von Adressen nach Firmen und Personen. combit GmbH Untere Laube Konstanz

SQL structured query language

MySQL, phpmyadmin & SQL. Kurzübersicht

Erstellen. Zunächst erscheint wie auch beim Start von Profi die Maske zur Anmeldung des Benutzers: Abb.: Benutzeranmeldung

Schlafen Sie gut!? - Autodesk Vault System Überwachung

Einstellungen im Umgang mit organisatorischen Postfächern

NCP Secure Enterprise Management (für Windows-Betriebssysteme) Neue Features Version 1.03 bis 2.04

In diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann.

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Im- und Export von Waypoints, Routen und Tracks

sm-client Projekt Aktualisierungsinstruktionen für R2.x Finale Version SSK / BSV eahv/iv

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Migration der Daten eines CRS-Mandanten von Kunde zu Kunde

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

INKSMail. Modulbeschreibung. INKSMail Modulbeschreibung. Software-Lösungen. Stand: Seite 1

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

Whitepaper. Produkt: combit Relationship Manager / address manager. FILESTREAM für Microsoft SQL Server aktivieren

Transkript:

Automatisiertes Versenden von Abfrage- Ergebnissen Mario Wagner 05.10.2018 Dieser Beitrag von Auf die Würfel, fertig, los (http://crew.bissantz.de/) ist nicht frei zugänglich und wird nur individuell zur Verfügung gestellt. Die Verwendung ist nur für den persönlichen Gebrauch und nur im Rahmen der Nutzung der Bissantz-Softwareprodukte gestattet. Für die Richtigkeit des Inhalts wird keine Haftung übernommen. Jedwede Weitergabe, intern oder an Dritte, und die Veröffentlichung sind ausdrücklich untersagt. Sämtliche Unterlagen und Publikationen der Bissantz & Company GmbH sind geistiges Eigentum von Bissantz & Company oder der Autoren. Bissantz & Company GmbH Nordring 98 90409 Nürnberg T +49 911 935536-0 F +49 911 935536-10 service@bissantz.de Geschäftsführer Dr. Nicolas Bissantz Michael Westphal USt-IdNr. DE181064258 Steuer-Nr. 241/118/25048 Amtsgericht Nürnberg HRB 15590 Sparkasse Nürnberg IBAN DE88 7605 0101 0570 1792 91 BIC SSKNDE77XXX www.bissantz.de

Abstract In diesem Beitrag soll eine Möglichkeit aufgezeigt werden, Listen automatisiert zur Verfügung zu stellen. DeltaMaster als Visualisierungstool ist nicht das Mittel der Wahl, um lange Listen darzustellen bzw. zu erzeugen. Nichtsdestotrotz kann es zum Beispiel in Planungsprojekten vorkommen, dass man das Ergebnis einer Abfrage oder den Inhalt einer Tabelle automatisiert zur Verfügung stellen will. Das Ziel dieses Artikels ist es, dies mit Bordmitteln des SQL Servers zu ermöglichen. Seite 2 von 7

1 Automatisiertes Versenden von Abfragen 1.1 Voraussetzung Um die in diesem Artikel beschrieben Funktionen nutzen zu können, wird das Datenbank Mail Modul des Servers benötigt. Da es beim Einrichten dieses Moduls per Front End in aktuellen SQL Server Management Versionen häufiger zu einem Fehler kommt, möchte ich an dieser Stelle ein kurzes Skript zur Verfügung stellen, welches das Einrichten des Moduls übernimmt (siehe Anhang 2.1). 1.2 Aufbau der genutzten Prozedur Bei der genutzten Funktion handelt es sich um die sp_send_dbmail, diese ist Bestandteil der msdb Datenbank. Im Folgenden sollen die Parameter im Einzelnen analysiert werden. sp_send_dbmail @profile_name = Hierbei handelt es sich um das zu verwendende Mailprofil @blind_copy_recipients = Der BCC Mail Empfänger @copy_recipients = Der CC Mail Empfänger @from_address = Die Möglichkeit die Absenderadresse zu beeinflussen @recipients = Der Mail Empfänger @reply_to = Die Möglichkeit die Antwortadresse zu beeinflussen @subject = Der Mailbetreff @body = Der Inhalt der Emailadresse @body_format = Einstellung ob der Inhalt in HTML oder als Text formatiert wird @importance = Einstellung der Wichtigkeit (low/normal/high) @sensitivity = Einstellung der Vertraulichkeit @file_attachments = Die Möglichkeit Dateien über einen absoluten Pfad anzuhängen @query = Eine auszuführende Query vor den Versand der Mail voranzustellen @execute_query_database = Die Zieldatenbank für die Query @attach_query_result_as_file = Die Entscheidung ob das Ergebnis als Datei oder als Ergebnis an die Mail angehangen werden soll (0/1) @query_attachment_filename = Wenn in der oberen Option 1 gewählt wurde, kann hier ein Datei Name vergeben werden @query_result_header = Wahl ob der Query eine Spaltenüberschrift hinzugefügt wer den soll (0/1) @query_result_width = Beeinflussung der Linienstärke der Tabelle @query_result_separator = Festlegung des Trennzeichens @append_query_error = Festlegung ob eine Mail versendet werden soll auch wenn die Abfrage fehlgeschlagen ist (0/1) Seite 3 von 7

1.3 Dynamisierung des Versandes Um den Versand zu dynamisieren, bauen wir sie in einer eigenen Prozedur ein. Diese Prozedur bekommt für den Aufruf verschiedene Parameter: CREATE PROC P_APP_SendQueryResult AS @str_profilename varchar(250), @str_recipients varchar(250), @str_recipientscc varchar(250), @str_recipientsbcc varchar(250), @str_subject nvarchar(250), @str_body nvarchar (MAX), @str_destinationdatabase varchar(250), @str_sqlquery nvarchar(max), @str_attachfilename nvarchar(max) EXEC msdb.dbo.sp_send_dbmail @profile_name = @str_profilename, @recipients = @str_recipients, @copy_recipients = @str_recipientscc, @blind_copy_recipients = @str_recipientsbcc, @subject = @str_subject, @body = @str_body, @query = @str_sqlquery, @execute_query_database = @str_destinationdatabase, @attach_query_result_as_file = 1, @query_attachment_filename = @str_attachfilename, @query_result_header = 0, @query_result_separator = ';', @exclude_query_output = 1, @query_result_no_padding = 1 1.4 Erstellen der SQL Abfrage Da in der aufgebauten Prozedur der Parameter @query_result_header auf 0 gesetzt wurde, würde das Ergebnis keine Spaltenüberschriften enthalten. Dieser Parameter wurde gesetzt, da sonst nach der Spaltenüberschrift durch den SQL Server drei Leerzeilen eingefügt werden. Um trotzdem Spaltenüberschriften in der Datei zu haben, nutzen wir einen Kniff und verbinden das Ergebnis der Abfrage mit einem UNION ALL mit den Spaltenüberschriften. DECLARE @sqltxt NVARCHAR(max) SET @sqltxt = 'SELECT ''MonatID'', ''WertartID'', ''PeriodenansichtID'', ''KundeID'', ''ProduktID'', ''StoffgruppeID'', ''Umsatz'', ''BelegNr'', ''SourceID'' UNION ALL SELECT Seite 4 von 7

MonatID, WertartID, PeriodenansichtID, KundeID, ProduktID, StoffgruppeID, CONVERT(VARCHAR(50),Umsatz), BelegNr, CONVERT(VARCHAR(50),SourceID ) FROM T_FACT_01_Deckungsbeitragsrechnung WHERE Umsatz IS NOT Null' 1.5 Aufruf der Prozedur Nach dem Aufruf der Prozedur mit den notwenigen Parametern: EXEC dbo.p_app_sendqueryresult @str_profilname = 'DeltaMasterMail', @str_recipients = 'wagner@bissantz.de', @str_recipientscc = '', @str_recipientsbcc = '', @str_subject = N'Versand der Abfrage', @str_body = N'Hier kommt das Ergebnis der Abfrage als Datei', @str_destinationdatabase = 'Chair', @str_sqlquery = @sqltxt, @str_attachfilename = N'SQL Abfrage.csv' Ist das Ergebnis eine CSV Datei als Email. Seite 5 von 7

2 Anhang 2.1 Mail Server Script -- ================================================================ -- DATABASE MAIL CONFIGURATION -- ================================================================ -- Create a Database Mail account EXECUTE msdb.dbo.sysmail_add_account_sp @account_name = '', @description = '', @email_address = '', @replyto_address = '', @display_name = '', @mailserver_name = '', @port = ; -- Create a Database Mail Profile DECLARE @profile_id INT, @profile_description sysname; SELECT @profile_id = COALESCE(MAX(profile_id),1) FROM msdb.dbo.sysmail_profile SELECT @profile_description = 'Database Mail Profile for ' + @@servername EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = '', @description = @profile_description; -- Add the account to the profile EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = '', @account_name = '', @sequence_number = @profile_id; -- Grant access to the profile to the DBMailUsers role EXECUTE msdb.dbo.sysmail_add_principalprofile_sp @profile_name = '', @principal_id = 0, @is_default = 1 ; -- Enable Database Mail Seite 6 von 7

USE master; sp_configure 'show advanced', 1 RECONFIGURE sp_configure 'Database Mail XPs', 1 RECONFIGURE Seite 7 von 7