SlideShare una empresa de Scribd logo
1 de 18
SQL CLR Integration
PASS Treffen der
Regionalgruppe Sachsen
27.09.2010
Dorrit Riemenschneider
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
> Grundlagen
> Sicherheitsbetrachtungen
> Schnellanleitung
> Beispiele, Beispiele, …
• Zeichenfolgenverschlüsselung
• Reguläre Ausdrücke
• Splitten und Verketten von Zeichenfolgen
• Senden von E-Mails
• …
Agenda
2
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
> SQL 2005 ++
> SQL Server ist Host, .Net
ist Gast
> Assemblies werden in die
Datenbank importiert 
• sys.assemblies
• sys.assembly_files
> Namespace
Microsoft.SqlServer.Server
> .Net Framework <= 3.5 
Grundlagen
3
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Sicherheitsbetrachtungen
4
> Assemblies müssen signiert werden
• Alternative: Datenbank als vertrauenswürdig einstufen
> Referenzieren von Framework-DLLs
• CLR Assembly muss mit PERMISSION_SET=SAFE registriert werden
> Referenzieren eigener oder 3rd Party DLLs
• Müssen als CLR Assemblies in die Datenbank importiert werden
Sicherheitsstufe Zugriff auf…
SAFE Ausschließlich eigene Datenbank
EXTERNAL_ACCESS Zusätzlich Dateisystem, Registry, Netzwerk
UNSAFE Zusätzlich Unmanaged Code
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
> CLR Funktionen aktivieren (1x pro Server)
> Erstellen der Assembly in Visual Studio
> Importieren in die Datenbank
> Erstellen einer CLR Funktion unter Verweis
auf die Methode in der .Net Assembly
Los geht‘s!
5
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Zeichenfolgenverschlüsselung
6
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
… und natürlich auch Entschlüsselung 
7
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Reguläre Ausdrücke
8
> Prüfung, ob Zeichenfolge einem regulären Ausdruck entspricht
> Klasse System.Text.RegularExpressions.Regex
> Tipp: http://www.regular-expressions.info
Beispiel Regulärer Ausdruck
PLZ (Deutschland) ^(D-)?d{5}$
Url ^http(s)?://([w-]+.)+[w-]+(/[w-./?%&=]*)?$
E-Mail-Adresse ^[a-zA-Z.-_]+@([a-zA-Z.-_]+.)+[a-zA-Z]{2,4}$
IP-Adresse (lazy) ^b(?:d{1,3}.){3}d{1,3}b$
IP-Adresse (strong)
^b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-
4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-
9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)b$
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Reguläre Ausdrücke (E-Mail-Adresse)
9
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Reguläre Ausdrücke (generisches Beispiel)
10
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Splitten von Zeichenfolgen
11
> Transformieren einer durch Separatoren getrennten Zeichenfolge in eine
Tabelle
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Splitten von Zeichenfolgen (Fortsetzung)
12
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Verketten von Zeichenfolgen
13
> Realisierung mittels SQL benutzerdefiniertem Aggregat
• Separate Klasse pro Aggregat erforderlich
> Attribute [Serializable] und [SqlUserDefinedAggregate]
> Klasse ableiten von IBinarySerialize
• Implementieren der Methoden Read und Write
> Weitere zu implementierende Methoden:
• Init: Initialize the internal data structures
• Accumulate: Accumulate the next value, not if the value is null
• Merge: Merge the partially computed aggregate with this aggregate
• Terminate: Called at the end of aggregation, to return the results of the
aggregation
> http://technet.microsoft.com/en-us/library/ms131056%28SQL.90%29.aspx
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Verketten von Zeichenfolgen (Fortsetzung)
14
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
E-Mail senden
15
> Verwendung:
• SQL Server Express
• (noch) mehr Möglichkeiten als bei xp_sendmail
(Konfiguration durch erweiterte Eigenschaften,
Anmeldung an SMTP Server möglich)
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
E-Mail senden (Fortsetzung)
16
> Achtung: Sicherheitsstufe muss mindestens EXTERNAL_ACCESS sein 
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
> Abfragen eines Webservice (z.B. Börsenkurse,
Währungsumrechnung)
> Export einer Tabelle/eines Abfrageergebnisses
nach XML oder CSV
> SQL Server Reporting Service Berichte als
PDF per E-Mail versenden
> …
Weitere Ideen
17
SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de
Vielen Dank!
18
> Dorrit.Riemenschneider@Communardo.de
> www.communardo.de/techblog/author/dri
> www.xing.com/profile/Dorrit_Riemenschneider
> twitter.com/sharepoint_team

Más contenido relacionado

Destacado

Zimbabwe
ZimbabweZimbabwe
ZimbabweAllonsy
 
Marsella laura 2ºa bto
Marsella laura 2ºa btoMarsella laura 2ºa bto
Marsella laura 2ºa btobetica17
 
Nuevas tecnologías y web 2.0 en el ámbito sanitario
Nuevas tecnologías y web 2.0 en el ámbito sanitarioNuevas tecnologías y web 2.0 en el ámbito sanitario
Nuevas tecnologías y web 2.0 en el ámbito sanitarioOlga Navarro
 
2443 photos aeriennes-du_11_sept.pps_
2443 photos aeriennes-du_11_sept.pps_2443 photos aeriennes-du_11_sept.pps_
2443 photos aeriennes-du_11_sept.pps_Manuel Santos
 
Herramientas de Google nivel básico
Herramientas de Google nivel básicoHerramientas de Google nivel básico
Herramientas de Google nivel básicoOlga Navarro
 
Eucharistie 12 décembre
Eucharistie 12 décembreEucharistie 12 décembre
Eucharistie 12 décembreOutremeuse
 
Marketing viral, buzz marketing et social media marketing
Marketing viral, buzz marketing et social media marketingMarketing viral, buzz marketing et social media marketing
Marketing viral, buzz marketing et social media marketingEmblematic
 
La loi de Bastiat, vial et mainbourg t4
La loi de Bastiat, vial et mainbourg t4La loi de Bastiat, vial et mainbourg t4
La loi de Bastiat, vial et mainbourg t4Terminales
 
Création d'une application html5 utilisant canvas, svg et les animations css3
Création d'une application html5 utilisant canvas, svg et les animations css3Création d'une application html5 utilisant canvas, svg et les animations css3
Création d'une application html5 utilisant canvas, svg et les animations css3davrous
 
Le XVIIIème siècle en Espagne
Le XVIIIème siècle en EspagneLe XVIIIème siècle en Espagne
Le XVIIIème siècle en Espagnemiguelprofairen
 
Annexes AG Fédération nationale des Villages étapes
Annexes AG Fédération nationale des Villages étapesAnnexes AG Fédération nationale des Villages étapes
Annexes AG Fédération nationale des Villages étapesfnve
 

Destacado (17)

ShafwanMech_CV2016
ShafwanMech_CV2016ShafwanMech_CV2016
ShafwanMech_CV2016
 
Zimbabwe
ZimbabweZimbabwe
Zimbabwe
 
Marsella laura 2ºa bto
Marsella laura 2ºa btoMarsella laura 2ºa bto
Marsella laura 2ºa bto
 
Les Maquettes
Les MaquettesLes Maquettes
Les Maquettes
 
Nuevas tecnologías y web 2.0 en el ámbito sanitario
Nuevas tecnologías y web 2.0 en el ámbito sanitarioNuevas tecnologías y web 2.0 en el ámbito sanitario
Nuevas tecnologías y web 2.0 en el ámbito sanitario
 
2443 photos aeriennes-du_11_sept.pps_
2443 photos aeriennes-du_11_sept.pps_2443 photos aeriennes-du_11_sept.pps_
2443 photos aeriennes-du_11_sept.pps_
 
Herramientas de Google nivel básico
Herramientas de Google nivel básicoHerramientas de Google nivel básico
Herramientas de Google nivel básico
 
Best Memories- Emily
Best Memories- EmilyBest Memories- Emily
Best Memories- Emily
 
Eucharistie 12 décembre
Eucharistie 12 décembreEucharistie 12 décembre
Eucharistie 12 décembre
 
Marketing viral, buzz marketing et social media marketing
Marketing viral, buzz marketing et social media marketingMarketing viral, buzz marketing et social media marketing
Marketing viral, buzz marketing et social media marketing
 
30 daytracker ge
30 daytracker ge30 daytracker ge
30 daytracker ge
 
La loi de Bastiat, vial et mainbourg t4
La loi de Bastiat, vial et mainbourg t4La loi de Bastiat, vial et mainbourg t4
La loi de Bastiat, vial et mainbourg t4
 
5603226-de-DE
5603226-de-DE5603226-de-DE
5603226-de-DE
 
Création d'une application html5 utilisant canvas, svg et les animations css3
Création d'une application html5 utilisant canvas, svg et les animations css3Création d'une application html5 utilisant canvas, svg et les animations css3
Création d'une application html5 utilisant canvas, svg et les animations css3
 
Le XVIIIème siècle en Espagne
Le XVIIIème siècle en EspagneLe XVIIIème siècle en Espagne
Le XVIIIème siècle en Espagne
 
Annexes AG Fédération nationale des Villages étapes
Annexes AG Fédération nationale des Villages étapesAnnexes AG Fédération nationale des Villages étapes
Annexes AG Fédération nationale des Villages étapes
 
Business technology
Business technologyBusiness technology
Business technology
 

Similar a SQL CLR Integration

Barrierefreie Internet und Intranetseiten mit Sharepoint Server - technisch
Barrierefreie Internet und Intranetseiten mit Sharepoint Server - technischBarrierefreie Internet und Intranetseiten mit Sharepoint Server - technisch
Barrierefreie Internet und Intranetseiten mit Sharepoint Server - technischSharepointUGDD
 
DNUG Chemnitz 20091210
DNUG Chemnitz 20091210DNUG Chemnitz 20091210
DNUG Chemnitz 20091210SharepointUGDD
 
Enterprise mashups - Remix the Web. Create your own workplace.
Enterprise mashups - Remix the Web. Create your own workplace.Enterprise mashups - Remix the Web. Create your own workplace.
Enterprise mashups - Remix the Web. Create your own workplace.tischmid
 
Intranet 2.0 - Lösungen für Wissensmanagement und Zusammenarbeit
Intranet 2.0 - Lösungen für Wissensmanagement und ZusammenarbeitIntranet 2.0 - Lösungen für Wissensmanagement und Zusammenarbeit
Intranet 2.0 - Lösungen für Wissensmanagement und ZusammenarbeitCommunardo GmbH
 
Import Von Inhalten In Confluence (CCD'09)
Import Von Inhalten In Confluence (CCD'09)Import Von Inhalten In Confluence (CCD'09)
Import Von Inhalten In Confluence (CCD'09)Communardo GmbH
 
.NET Usergroup Chemnitz 20091210
.NET Usergroup Chemnitz 20091210.NET Usergroup Chemnitz 20091210
.NET Usergroup Chemnitz 20091210Martin Hey
 
SPSD 2015 - "Von OneDrive for Business zur Enterprise Collaboration Architektur"
SPSD 2015 - "Von OneDrive for Business zur Enterprise Collaboration Architektur"SPSD 2015 - "Von OneDrive for Business zur Enterprise Collaboration Architektur"
SPSD 2015 - "Von OneDrive for Business zur Enterprise Collaboration Architektur"Communardo GmbH
 
CCD 2012: Die Top 5 Plugins für Confluence
CCD 2012: Die Top 5 Plugins für ConfluenceCCD 2012: Die Top 5 Plugins für Confluence
CCD 2012: Die Top 5 Plugins für ConfluenceCommunardo GmbH
 
Silverlight 2.0 Prozess Editor
Silverlight 2.0 Prozess EditorSilverlight 2.0 Prozess Editor
Silverlight 2.0 Prozess EditorMartin Hey
 
Scratch und LEGO WeDo - Wie mache ich mein Kind fit für SharePoint? ;-)
Scratch und LEGO WeDo - Wie mache ich mein Kind fit für SharePoint? ;-)Scratch und LEGO WeDo - Wie mache ich mein Kind fit für SharePoint? ;-)
Scratch und LEGO WeDo - Wie mache ich mein Kind fit für SharePoint? ;-)Christian Heindel
 
Microsharing Im Unternehmen: Wie Dokumentieren und Lernen Teil der täglichen ...
Microsharing Im Unternehmen: Wie Dokumentieren und Lernen Teil der täglichen ...Microsharing Im Unternehmen: Wie Dokumentieren und Lernen Teil der täglichen ...
Microsharing Im Unternehmen: Wie Dokumentieren und Lernen Teil der täglichen ...Communardo GmbH
 
SPSD2014 - Herausforderung: Produktive SharePoint Collaboration Plattform
SPSD2014 - Herausforderung: Produktive SharePoint Collaboration PlattformSPSD2014 - Herausforderung: Produktive SharePoint Collaboration Plattform
SPSD2014 - Herausforderung: Produktive SharePoint Collaboration PlattformCommunardo GmbH
 
Kraus sepp cv&amp;projekte 14062016_p_kurz
Kraus sepp cv&amp;projekte 14062016_p_kurzKraus sepp cv&amp;projekte 14062016_p_kurz
Kraus sepp cv&amp;projekte 14062016_p_kurzWincor Nixdorf
 
Aggregation, Filterung und Visualisierung von Nachrichten aus heterogenen Que...
Aggregation, Filterung und Visualisierung von Nachrichten aus heterogenen Que...Aggregation, Filterung und Visualisierung von Nachrichten aus heterogenen Que...
Aggregation, Filterung und Visualisierung von Nachrichten aus heterogenen Que...Torsten Lunze
 
Geneme: Aggregation und Personalisierung von Informationsströmen
Geneme: Aggregation und Personalisierung von InformationsströmenGeneme: Aggregation und Personalisierung von Informationsströmen
Geneme: Aggregation und Personalisierung von InformationsströmenTorsten Lunze
 
Webcast: Quo vadis Communote – in die Cloud oder hinter die Firewall?
Webcast: Quo vadis Communote – in die Cloud oder hinter die Firewall?Webcast: Quo vadis Communote – in die Cloud oder hinter die Firewall?
Webcast: Quo vadis Communote – in die Cloud oder hinter die Firewall?Communote GmbH
 

Similar a SQL CLR Integration (20)

Dynamic LINQ
Dynamic LINQDynamic LINQ
Dynamic LINQ
 
Barrierefreie Internet und Intranetseiten mit Sharepoint Server - technisch
Barrierefreie Internet und Intranetseiten mit Sharepoint Server - technischBarrierefreie Internet und Intranetseiten mit Sharepoint Server - technisch
Barrierefreie Internet und Intranetseiten mit Sharepoint Server - technisch
 
DNUG Chemnitz 20091210
DNUG Chemnitz 20091210DNUG Chemnitz 20091210
DNUG Chemnitz 20091210
 
Enterprise mashups - Remix the Web. Create your own workplace.
Enterprise mashups - Remix the Web. Create your own workplace.Enterprise mashups - Remix the Web. Create your own workplace.
Enterprise mashups - Remix the Web. Create your own workplace.
 
Intranet 2.0 - Lösungen für Wissensmanagement und Zusammenarbeit
Intranet 2.0 - Lösungen für Wissensmanagement und ZusammenarbeitIntranet 2.0 - Lösungen für Wissensmanagement und Zusammenarbeit
Intranet 2.0 - Lösungen für Wissensmanagement und Zusammenarbeit
 
Import Von Inhalten In Confluence (CCD'09)
Import Von Inhalten In Confluence (CCD'09)Import Von Inhalten In Confluence (CCD'09)
Import Von Inhalten In Confluence (CCD'09)
 
.NET Usergroup Chemnitz 20091210
.NET Usergroup Chemnitz 20091210.NET Usergroup Chemnitz 20091210
.NET Usergroup Chemnitz 20091210
 
SPSD 2015 - "Von OneDrive for Business zur Enterprise Collaboration Architektur"
SPSD 2015 - "Von OneDrive for Business zur Enterprise Collaboration Architektur"SPSD 2015 - "Von OneDrive for Business zur Enterprise Collaboration Architektur"
SPSD 2015 - "Von OneDrive for Business zur Enterprise Collaboration Architektur"
 
CCD 2012: Die Top 5 Plugins für Confluence
CCD 2012: Die Top 5 Plugins für ConfluenceCCD 2012: Die Top 5 Plugins für Confluence
CCD 2012: Die Top 5 Plugins für Confluence
 
Silverlight 2.0 Prozess Editor
Silverlight 2.0 Prozess EditorSilverlight 2.0 Prozess Editor
Silverlight 2.0 Prozess Editor
 
CCD2014 - Communardo
CCD2014 - CommunardoCCD2014 - Communardo
CCD2014 - Communardo
 
Scratch und LEGO WeDo - Wie mache ich mein Kind fit für SharePoint? ;-)
Scratch und LEGO WeDo - Wie mache ich mein Kind fit für SharePoint? ;-)Scratch und LEGO WeDo - Wie mache ich mein Kind fit für SharePoint? ;-)
Scratch und LEGO WeDo - Wie mache ich mein Kind fit für SharePoint? ;-)
 
Microsharing Im Unternehmen: Wie Dokumentieren und Lernen Teil der täglichen ...
Microsharing Im Unternehmen: Wie Dokumentieren und Lernen Teil der täglichen ...Microsharing Im Unternehmen: Wie Dokumentieren und Lernen Teil der täglichen ...
Microsharing Im Unternehmen: Wie Dokumentieren und Lernen Teil der täglichen ...
 
Dynamic linq
Dynamic linqDynamic linq
Dynamic linq
 
SPSD2014 - Herausforderung: Produktive SharePoint Collaboration Plattform
SPSD2014 - Herausforderung: Produktive SharePoint Collaboration PlattformSPSD2014 - Herausforderung: Produktive SharePoint Collaboration Plattform
SPSD2014 - Herausforderung: Produktive SharePoint Collaboration Plattform
 
Kraus sepp cv&amp;projekte 14062016_p_kurz
Kraus sepp cv&amp;projekte 14062016_p_kurzKraus sepp cv&amp;projekte 14062016_p_kurz
Kraus sepp cv&amp;projekte 14062016_p_kurz
 
Aggregation, Filterung und Visualisierung von Nachrichten aus heterogenen Que...
Aggregation, Filterung und Visualisierung von Nachrichten aus heterogenen Que...Aggregation, Filterung und Visualisierung von Nachrichten aus heterogenen Que...
Aggregation, Filterung und Visualisierung von Nachrichten aus heterogenen Que...
 
Geneme: Aggregation und Personalisierung von Informationsströmen
Geneme: Aggregation und Personalisierung von InformationsströmenGeneme: Aggregation und Personalisierung von Informationsströmen
Geneme: Aggregation und Personalisierung von Informationsströmen
 
[DE] Glossar zu Dokumenten-Technologien | PROJECT CONSULT | Hamburg 2010
 [DE] Glossar zu Dokumenten-Technologien | PROJECT CONSULT | Hamburg 2010 [DE] Glossar zu Dokumenten-Technologien | PROJECT CONSULT | Hamburg 2010
[DE] Glossar zu Dokumenten-Technologien | PROJECT CONSULT | Hamburg 2010
 
Webcast: Quo vadis Communote – in die Cloud oder hinter die Firewall?
Webcast: Quo vadis Communote – in die Cloud oder hinter die Firewall?Webcast: Quo vadis Communote – in die Cloud oder hinter die Firewall?
Webcast: Quo vadis Communote – in die Cloud oder hinter die Firewall?
 

SQL CLR Integration

  • 1. SQL CLR Integration PASS Treffen der Regionalgruppe Sachsen 27.09.2010 Dorrit Riemenschneider
  • 2. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de > Grundlagen > Sicherheitsbetrachtungen > Schnellanleitung > Beispiele, Beispiele, … • Zeichenfolgenverschlüsselung • Reguläre Ausdrücke • Splitten und Verketten von Zeichenfolgen • Senden von E-Mails • … Agenda 2
  • 3. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de > SQL 2005 ++ > SQL Server ist Host, .Net ist Gast > Assemblies werden in die Datenbank importiert  • sys.assemblies • sys.assembly_files > Namespace Microsoft.SqlServer.Server > .Net Framework <= 3.5  Grundlagen 3
  • 4. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Sicherheitsbetrachtungen 4 > Assemblies müssen signiert werden • Alternative: Datenbank als vertrauenswürdig einstufen > Referenzieren von Framework-DLLs • CLR Assembly muss mit PERMISSION_SET=SAFE registriert werden > Referenzieren eigener oder 3rd Party DLLs • Müssen als CLR Assemblies in die Datenbank importiert werden Sicherheitsstufe Zugriff auf… SAFE Ausschließlich eigene Datenbank EXTERNAL_ACCESS Zusätzlich Dateisystem, Registry, Netzwerk UNSAFE Zusätzlich Unmanaged Code
  • 5. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de > CLR Funktionen aktivieren (1x pro Server) > Erstellen der Assembly in Visual Studio > Importieren in die Datenbank > Erstellen einer CLR Funktion unter Verweis auf die Methode in der .Net Assembly Los geht‘s! 5
  • 6. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Zeichenfolgenverschlüsselung 6
  • 7. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de … und natürlich auch Entschlüsselung  7
  • 8. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Reguläre Ausdrücke 8 > Prüfung, ob Zeichenfolge einem regulären Ausdruck entspricht > Klasse System.Text.RegularExpressions.Regex > Tipp: http://www.regular-expressions.info Beispiel Regulärer Ausdruck PLZ (Deutschland) ^(D-)?d{5}$ Url ^http(s)?://([w-]+.)+[w-]+(/[w-./?%&=]*)?$ E-Mail-Adresse ^[a-zA-Z.-_]+@([a-zA-Z.-_]+.)+[a-zA-Z]{2,4}$ IP-Adresse (lazy) ^b(?:d{1,3}.){3}d{1,3}b$ IP-Adresse (strong) ^b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0- 4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0- 9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)b$
  • 9. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Reguläre Ausdrücke (E-Mail-Adresse) 9
  • 10. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Reguläre Ausdrücke (generisches Beispiel) 10
  • 11. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Splitten von Zeichenfolgen 11 > Transformieren einer durch Separatoren getrennten Zeichenfolge in eine Tabelle
  • 12. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Splitten von Zeichenfolgen (Fortsetzung) 12
  • 13. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Verketten von Zeichenfolgen 13 > Realisierung mittels SQL benutzerdefiniertem Aggregat • Separate Klasse pro Aggregat erforderlich > Attribute [Serializable] und [SqlUserDefinedAggregate] > Klasse ableiten von IBinarySerialize • Implementieren der Methoden Read und Write > Weitere zu implementierende Methoden: • Init: Initialize the internal data structures • Accumulate: Accumulate the next value, not if the value is null • Merge: Merge the partially computed aggregate with this aggregate • Terminate: Called at the end of aggregation, to return the results of the aggregation > http://technet.microsoft.com/en-us/library/ms131056%28SQL.90%29.aspx
  • 14. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Verketten von Zeichenfolgen (Fortsetzung) 14
  • 15. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de E-Mail senden 15 > Verwendung: • SQL Server Express • (noch) mehr Möglichkeiten als bei xp_sendmail (Konfiguration durch erweiterte Eigenschaften, Anmeldung an SMTP Server möglich)
  • 16. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de E-Mail senden (Fortsetzung) 16 > Achtung: Sicherheitsstufe muss mindestens EXTERNAL_ACCESS sein 
  • 17. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de > Abfragen eines Webservice (z.B. Börsenkurse, Währungsumrechnung) > Export einer Tabelle/eines Abfrageergebnisses nach XML oder CSV > SQL Server Reporting Service Berichte als PDF per E-Mail versenden > … Weitere Ideen 17
  • 18. SeiteCommunardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (0) 351/833 820 · Mail info@communardo.de · www.communardo.de Vielen Dank! 18 > Dorrit.Riemenschneider@Communardo.de > www.communardo.de/techblog/author/dri > www.xing.com/profile/Dorrit_Riemenschneider > twitter.com/sharepoint_team