Sie sind hier: Wissen
Werbung
Begriff Schema Discovery API
Abkürzung SDA
Eintrag zuletzt aktualisiert am 10.02.2005

 Zur Stichwortliste unseres Lexikons

Was ist Schema Discovery API ?

ADO.NET 2.0 erlaubt im Gegensatz zu Version 1.x, das Schema einer Datenbank zu erforschen. Dieser Teil von ADO.NET wird auch als Schema Discovery API bezeichnet.

Ausführlicher Text

Schema-API
Das neue Schema-API von ADO.NET 2.0 besteht aus einem einzigen Befehl. GetSchema() ruft Schema-Informationen von einer Datenbank in Form eines DataTable-Objekts ab. GetSchema() erwartet eine Zeichenkette, die die Menge der zu übermittelnden Informationen angibt. Ein zweiter Parameter in Form eines Zeichenketten-Array erlaubt die Angabe eines Filters.
Dabei gibt es fünf allgemeine Menge, die durch die Konstantenliste System.Data.Common.DbMetaDataCollectionNames festgelegt ist:
  • MetaDataCollections: Eine Liste der verfügbaren Mengen (z.B. "Tables", "Views", "Users", etc.)
  • Restrictions: Eine Liste der verfügbaren Filter.
  • DataSourceInformation: Informationen zur Datenbankinstanz, auf die der Datenprovider verweist
  • DataTypes: Informationen über von der Datenbank unterstützen Datentypen
  • ReservedWords: Liste aller reservierten Worte der Datenbanksprache

Beispiel

SqlConnection sqlConn = new SqlConnection(CONNSTRING);
sqlConn.Open();
Demo.PrintHeader("MetaDataCollections:");
dt = sqlConn.GetSchema(System.Data.Common.DbMetaDataCollectionNames.MetaDataCollections);
Demo.PrintTable(dt);
Demo.PrintHeader("Liste der Tabellen:");
DataTable dt = sqlConn.GetSchema("Tables");
Demo.PrintTable(dt);
Demo.PrintHeader("Liste der Views:");
dt = sqlConn.GetSchema("Tables");
Demo.PrintTable(dt);
Demo.PrintHeader("Unterstützte Datentypen:");
dt = sqlConn.GetSchema(System.Data.Common.DbMetaDataCollectionNames.DataTypes);
Demo.PrintTable(dt);
Demo.PrintHeader("Unterstützte Einschränkungen:");
dt = sqlConn.GetSchema(System.Data.Common.DbMetaDataCollectionNames.Restrictions);
Demo.PrintTable(dt);
Demo.PrintHeader("Informationen über die Datenbank:");
dt = sqlConn.GetSchema(System.Data.Common.DbMetaDataCollectionNames.DataSourceInformation);
Demo.PrintTable(dt);
Demo.PrintHeader("Reservierte Worte:");
dt = sqlConn.GetSchema(System.Data.Common.DbMetaDataCollectionNames.ReservedWords);
Demo.PrintTable(dt);

Einschränkungen angeben

Die Nutzung der Filter ist wenig komfortabel, entspricht aber der Anforderung eine universelle Programmierschnittstelle für die unterschiedlichen Datenbankmanagementsysteme zu schaffen. Die DbMetaDataCollectionNames.Restrictions liefert für die Metadatentyp Columns vier Filter: Catalog, Owner, Table und Column. Dies bedeutet, dass im zweiten Parameter bei GetSchema() vier Werte anzugeben sind. Filter, die nicht gesetzt werden sollen, sind mit null zu belegen. Das folgende Beispiel zeigt, wie Sie eine Liste der Spalten der Tabelle "FL_Fluege" erhalten.
Demo.PrintHeader("Liste der Spalten der Tabelle FL_Fluege:");
string[] e = new String[] { null,null,"Fl_Fluege",null };
dt = sqlConn.GetSchema("Columns", e);
Demo.PrintTable(dt);
Listing 8.26: Eingeschränkte Suche

Beratung & Support

Schulungen zu diesem Thema

 Microsoft SharePoint für Entwickler: Anpassen/Customizing und Programmieren von Microsoft Sharepoint
 Umstieg von .NET-Desktop-Entwicklung (WPF/Windows Forms) auf Webentwicklung (ASP.NET/ASP.NET Core + JavaScript/TypeScript mit Webframeworks wie Angular, Vue.js oder React)
 Von ASP.NET 1.1 nach ASP.NET 2.0: Neuerungen in ASP.NET 2.0
 Microsoft SQL Server 2012 - Die Neuerungen gegenüber SQL Server 2008 (Update-Schulung)
 XML-Programmierung mit .NET (System.Xml) - Aufbauwissen
 Microsoft Visio und BPMN 2.0 Business Prozesses - Erstellen von Businessprozessen mit BPMN
 Moderne Web-Anwendungen mit TypeScript und Angular
 ASP.NET Webforms im Überblick - Weboberflächen mit .NET
 Microsoft Application Virtualization (App-V-Packaging)
 .NET-Basisklassenbibliothek (.NET Base Class Library)
 Mobile Anwendungsentwicklung für iOS mit Objective-C
 Windows 10/Windows 11 für Administratoren
 Microsoft SQL Server Reporting Services (SSRS)
 Windows Server 2016 Update (Neuheiten für Administratoren gegenüber Windows Server 2012 R2)
 ASP.NET Webforms (System.Web) - Basiswissen
 Microsoft BizTalk Server für Softwareentwickler - Entwicklung von BizTalk-Lösungen - Basiswissen
 Komponentenorientiertes Entwickeln mit .NET / .NET Components
 Visual Studio für Einsteiger
 Komponentenbasierte Softwareentwicklung (Component Based Development - CBD)
 .NET Remoting
 Windows Installer (MSI), Windows Installer-XML (WiX) und MSIX - Erstellen von Installationspaketen / Verteilen von Windows-Anwendungen / Deployment
 Infrastructure as Code – Professionelles Azure-Management mit ARM-Templates
 Dynamics 365 Customer Engagement / Microsoft Dynamics CRM für Anwender
 Versionsverwaltung mit Subversion
 Arbeiten mit PowerShell-Laufwerken
 Microsoft SharePoint Server für Administratoren
 ASP.NET Core 8.0/9.0: komplettes Wissen - mit MVC, Razor Pages, Blazor, WebAPIs und gRPC
 C# 11.0 - Neuerungen gegenüber C# 10.0
 .NET 7.0 - Änderungen und Neuerungen gegenüber .NET 6.0
 Deployment und Versionierung von .NET-Anwendungen
 Anfrage für eine individuelle Schulung zum Thema Schema Discovery API SDA  Gesamter Schulungsthemenkatalog