Data.SqlExpr.TCustomSQLDataSet.SetSchemaInfo
Delphi
procedure SetSchemaInfo(SchemaType: TSchemaType; SchemaObjectName, SchemaPattern: string; PackageName: string = '' );
C++
void __fastcall SetSchemaInfo(TSchemaType SchemaType, System::UnicodeString SchemaObjectName, System::UnicodeString SchemaPattern, System::UnicodeString PackageName = System::UnicodeString());
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
procedure function |
public | Data.SqlExpr.pas Data.SqlExpr.hpp |
Data.SqlExpr | TCustomSQLDataSet |
Beschreibung
Legt fest, ob die Datenmenge Metadaten vom Server enthält und welcher Art diese Daten sind.
Mit SetSchemaInfo können Sie festlegen, ob die SQL-Datenmenge das Ergebnis einer SQL-Anweisung (Eigenschaft CommandText) oder eine Tabelle mit Schemainformationen (Metadaten) enthalten soll.
Der Parameter SchemaType bezeichnet die gewünschte Informationsart. Möglich sind die folgenden Werte:
Wert | Beschreibung |
---|---|
stNoSchema |
Keine Schemainformationen. Die SQL-Datenmenge enthält keine Metadaten vom Server, sondern das Ergebnis der Abfrage oder Stored Procedure. |
stTables |
Informationen über alle Datentabellen auf dem Datenbankserver, die den in der Eigenschaft TableScope der SQL-Verbindung angegeben Kriterien entsprechen. |
stSysTables |
Informationen über alle Systemtabellen auf dem Datenbankserver. Nicht alle Server verwenden zum Speichern von Metadaten Systemtabellen. Wird eine Liste der Systemtabellen von einem Server angefordert, der keine Systemtabellen verwendet, ist die resultierende Datenmenge leer. |
stProcedures |
Informationen über alle Stored Procedures auf dem Datenbankserver. |
stColumns |
Informationen über alle Spalten (Felder) in der angegebenen Tabelle. |
stProcedureParams |
Informationen über alle Parameter der angegebenen Stored Procedure. |
stIndexes |
Informationen über alle Indizes der angegebenen Tabelle. |
SchemaObjectName ist der Name der Tabelle oder Stored Procedure, über deren Spalten, Indizes oder Parameter Sie Informationen benötigen. Hat SchemaType den Wert stColumns oder stIndexes, gibt SchemaObjectName den Namen einer Tabelle an. Hat SchemaType den Wert stProcedureParams, bezeichnet SchemaObjectName eine Stored Procedure. Wenn SchemaType den Wert stNoSchema, stTables, stSysTables oder stProcedures oder stPackageshat, wird SchemaObjectName ignoriert.
SchemaPattern ist ein Muster, das als Filter für die Ergebnismenge dient. Der Name jedes Elements (Tabelle, Stored Procedure, Feld, Parameter oder Index) muss dieser Mustermaske entsprechen. Andernfalls wird das Element beim Öffnen der SQL-Datenmenge nicht als Datensatz angezeigt. SchemaPattern erlaubt die Platzhalter '%' (ein String mit beliebigen Zeichen und von beliebiger Länge) und '_' (ein beliebiges einzelnes Zeichen). Wenn Sie in einem Muster ein literales Prozent- oder Unterstrichzeichen verwenden wollen, geben Sie es doppelt an (%% oder __). Wenn Sie keine Muster verwenden möchten, setzen Sie Pattern auf nil (Delphi) bzw. NULL (C++).
PackageName ist der Name eines Oracle-Package, in dem die Stored Procedure enthalten ist, wenn SchemaType stProcedures oder stProcedureParams ist. Wenn der Server kein Oracle-Server ist oder wenn die Stored Procedure nicht in einem Package definiert ist, sollte PackageName ein leerer String sein.
Wenn Sie nach einem Aufruf von SetSchemaInfo die Datenmenge öffnen, enthält Sie die gewünschten Informationen. Wenn SchemaType den Wert stNoSchema hat, verwendet die Datenmenge die Anweisung in CommandText.
Anmerkung: Wenn sich der Wert der Eigenschaft CommandText ändert, weist die Datenmenge der Eigenschaft SchemaType automatisch den Wert stNoSchema zu.