SQL Server 2005 CLR-Integration
260 likes | 367 Vues
SQL Server 2005 CLR-Integration. Jörg Neumann RESCO GmbH Hamburg. Jörg Neumann. IT-Consultant bei der RESCO GmbH in Hamburg. Hält Schulungen und Coachings zum SQL Server 2005 Schreibt für verschiedene Fachzeitschriften Schreibt an einem Buch über den SQL Server 2005
SQL Server 2005 CLR-Integration
E N D
Presentation Transcript
SQL Server 2005CLR-Integration Jörg Neumann RESCO GmbH Hamburg
Jörg Neumann • IT-Consultant bei der RESCO GmbH in Hamburg. • Hält Schulungen und Coachings zum SQL Server 2005 • Schreibt für verschiedene Fachzeitschriften • Schreibt an einem Buch über den SQL Server 2005 • Hält Vorträge auf Entwicklerkonferenzen • Schwerpunkte: • SQL Server • Smart Clients • Visual Studio Extensibility • Links zu weiterführenden Artikeln und Büchern finden Sie am Ende der Slides. • Kontakt: Joerg.Neumann@RESCO.de
Agenda • Warum CLR-Integration? • Details zur Integration • CLR-Datenbankobjekte erstellen • Serverseitiger Zugriff mit ADO.NET
Agenda • Warum CLR-Integration? • Details zur Integration • CLR-Datenbankobjekte erstellen • Serverseitiger Zugriff mit ADO.NET
Warum CLR-Integration? • T-SQL • Für mengenorientierten Zugriff ausgelegt • Eingeschränkte Funktionalität • Eingeschränkte Erweiterbarkeit • Eingeschränktes Programmiermodell • Maximale Performance
Warum CLR-Integration? • Extended Stored Procedures • C++, Speichermanagement, Sicherheit • Schwer zu debuggen • Loop-Back-Connection zur DB
Warum CLR-Integration? • SQLCLR • Sprach- und Funktionsvielfalt von .NET • Speichermanagement • Sicherheit • Inprocess-Datenzugriff • Mit T-SQL kombinierbar
T-SQL vs. SQLCLR • T-SQL • Bei mengenorientierten Operationen • High-Performance-Zugriffe • SQLCLR • Bei zeilenorientierten Operationen • Komplexen Berechnungen • Regular Expressions • Verschlüsselung • Stringmanipulation • Externe Zugriffe
Wofür SQLCLR nicht ist • Ersatz für T-SQL • Serverseitige Datenzugriffsschicht • O/R-Mapping mit UDTs • Word/Excel/PDF-Generierung • Image Processing
Agenda • Warum CLR-Integration? • Details zur Integration • CLR-Datenbankobjekte erstellen • Serverseitiger Zugriff mit ADO.NET
SQL Server vs. CLR • Speichermanagement • Thread-Management • Typsystem • Sicherheit • Verfügbarkeit • CLR-Integration muss explizit aktiviert werden
CLR-Erweiterungen in .NET 2.0 • Runtime Hosting API • Assembly Loading • AppDomain Management • Thread-Management/Synchronisation • Deadlock-Erkennung • Security Management • Speicherverwaltung
Sicherheitsprüfungen • Prüfung bei der Installation • Prüfung vor der Ausführung • Unterstützte Framework-Assemblies: • mscorlib.dll • system.data.dll • system.dll • system.xml.dll • system.security.dll • system.web.services.dll
Agenda • Warum CLR-Integration? • Details zur Integration • CLR-Datenbankobjekte erstellen • Serverseitiger Zugriff mit ADO.NET
CLR-Datenbankobjekte erstellen • CLR-Methoden werden mit Attributen gekennzeichnet • SqlProcedure • SqlFunction • SqlUserDefinedAggregate • SqlUserDefinedType • SqlTrigger • Enthalten zum Teil auch Laufzeitinformationen • Für jede CLR-Methode wird ein Datenbankobjekt erstellt
Demo CLR-Prozedur erstellen
Agenda • Warum CLR-Integration? • Details zur Integration • CLR-Datenbankobjekte erstellen • Serverseitiger Zugriff mit ADO.NET
Zugriff auf die aktive Session Zugriff auf den Ausgabestrom Zugriff auf Trigger-Daten Definition einer Datenzeile Serverseitiges ADO.NET • Namespace Microsoft.SqlServer.Server • Programmiermodell wie auf dem Client • SqlConnection • SqlDataAdapter • SqlCommand • Zusätzliche Serverklassen • SqlContext • SqlPipe • TriggerContext • DataRecord
Datenbankverbindung herstellen SqlConnection SqlConnection connection = new SqlConnection("Context Connection = true");
SqlPipe • Daten an den Aufrufer senden • Send(), ExecuteAndSend() • SendResultsStart(), …Row(), …End()
Demo Datenzugriff
Ressourcen Bücher • A First Look at SQL Server 2005 for Developers Bob Beauchemin u.a., Addison-Wesley, ISBN: 0321180593 Artikel • Using CLR Integration in SQL Server 2005http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/sqlclrguidance.asp Links • SQL Server 2005 Developer Centerhttp://www.msdn.microsoft.com/SQL/2005/ • Virtual Lab: SQL Server 2005 SQL CLR Integrationhttp://msdn.microsoft.com/virtuallabs/sql/default.aspx/