Freigeben über


OpenSchema-Methode

Ruft Datenbankschemainformationen vom Anbieter ab.

Syntax

  
Set recordset = connection.OpenSchema(QueryType, Criteria, SchemaID)  

Rückgabewert

Gibt ein Recordset-Objekt zurück, das Schemainformationen enthält. Das Recordset wird als schreibgeschützter, statischer Cursor geöffnet. Der QueryType bestimmt, welche Spalten im Recordset angezeigt werden.

Parameter

QueryType
Jeder SchemaEnum-Wert, der den Typ der auszuführenden Schemaabfrage darstellt.

Kriterien
Optional. Ein Array von Abfrageeinschränkungen für jede QueryType-Option, wie in SchemaEnum aufgeführt.

SchemaID
Die GUID für eine Anbieterschemaabfrage, die von der OLE DB-Spezifikation nicht definiert ist. Dieser Parameter ist erforderlich, wenn QueryType auf adSchemaProviderSpecific festgelegt ist, andernfalls wird er nicht verwendet.

Bemerkungen

Die OpenSchema-Methode gibt selbstbeschreibende Informationen zur Datenquelle zurück, z. B. welche Tabellen sich in der Datenquelle befinden, die Spalten in den Tabellen und die unterstützten Datentypen.

Das QueryType-Argument ist eine GUID, die die zurückgegebenen Spalten (Schemas) angibt. Die OLE DB-Spezifikation verfügt über eine vollständige Liste von Schemas.

Das Criteria-Argument beschränkt die Ergebnisse einer Schemaabfrage. Criteria gibt ein Array von Werten an, die im resultierenden Recordset in einer entsprechenden Teilmenge von Spalten vorkommen müssen, die als Einschränkungsspalten bezeichnet werden.

Die Konstante adSchemaProviderSpecific wird für das QueryType-Argument verwendet, wenn der Anbieter eigene nicht standardmäßige Schemaabfragen außerhalb der zuvor aufgeführten definiert. Wenn diese Konstante verwendet wird, ist das SchemaID-Argument erforderlich, um die GUID der auszuführenden Schemaabfrage zu übergeben. Wenn QueryType auf adSchemaProviderSpecific festgelegt ist, aber SchemaID nicht bereitgestellt wird, tritt ein Fehler auf.

Anbieter müssen nicht alle OLE DB-Standardschemaabfragen unterstützen. Insbesondere sind nur adSchemaTables, adSchemaColumns und adSchemaProviderTypes in der OLE DB-Spezifikation erforderlich. Der Anbieter muss jedoch nicht die zuvor für diese Schemaabfragen aufgeführten Criteria-Einschränkungen unterstützen.

Hinweis

Remote Data Service-Nutzung Die OpenSchema-Methode ist für ein clientseitiges Connection-Objekt nicht verfügbar.

Hinweis

In Visual Basic können Spalten, die über eine ganze Vier-Byte-Zahl ohne Vorzeichen (DBTYPE UI4) im Recordset verfügen, das von der OpenSchema-Methode des Connection-Objekts zurückgegeben wurde, nicht mit anderen Variablen verglichen werden. Weitere Informationen zu OLE DB-Datentypen finden Sie unter Datentypen in OLE DB (OLE DB) und Anhang A: Datentypen in der Microsoft OLE DB-Referenz für Programmierer.

Hinweis

Visual C/C++-Benutzer Wenn keine clientseitigen Cursor verwendet werden, gibt das Abrufen der „ORDINAL_POSITION“ eines Spaltenschemas in ADO eine Variante vom Typ VT_R8 in MDAC 2.7, MDAC 2.8 und Windows Data Access Components (Windows DAC) 6.0 zurück, während der in MDAC 2.6 verwendete Typ VT_I4 war. Programme, die für MDAC 2.6 geschrieben wurden, die nur nach einer zurückgegebenen Variante vom Typ VT_I4 suchen, würden für jede Ordnungszahl eine Null erhalten, wenn sie unter MDAC 2.7, MDAC 2.8 und Windows DAC 6.0 ohne Änderung ausgeführt würden. Diese Änderung wurde vorgenommen, weil der Datentyp, den OLE DB zurückgibt, DBTYPE_UI4 ist, und der Typ VT_I4 mit Vorzeichen besitzt nicht genügend Platz, um alle möglichen Werte aufzunehmen, ohne dass möglicherweise Teile abgeschnitten und dadurch Datenverluste verursacht werden.

Gilt für

Connection-Objekt (ADO)

Weitere Informationen

OpenSchema-Methode – Beispiel (VB)
OpenSchema-Methode – Beispiel (VC++)
Open-Methode (ADO-Verbindung)
Open-Methode (ADO Record)
Open-Methode (ADO-Recordset)
Open-Methode (ADO-Datenstrom)
Anhang A: Anbieter