Sie sind hier: Startseite | Wissen
BASTA 2016
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

Querverweise zu anderen Begriffen im Lexikon

Beratung & Support:

Schulungen zu diesem Thema:

 Anfrage für eine individuelle Schulung zum Thema Schema Discovery API  Gesamter Schulungsthemenkatalog