Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » UltraLite - C- und C++-Programmierung » Anwendungsentwicklung » UltraLite C++-Anwendungsentwicklung

 

Zugriff auf Schemainformationen

Sie können über den Programmcode Ergebnismengen- oder Datenbankstrukturbeschreibungen abrufen. Diese Beschreibungen sind als Schemainformationen bekannt und diese Informationen sind über die UltraLite C API-Schemaklassen verfügbar.

Hinweis

Sie können das Schema nicht mit der UltraLite C-API ändern. Sie können nur die Schemainformationen abrufen.

Sie können auf die folgenden Schemaobjekte und Informationen zugreifen:

  • ULResultSetSchema   Beschreibt eine Abfrage oder Daten in einer Tabelle. Es gibt Bezeichner, Name und Typinformationen der einzelnen Spalten und die Anzahl der Spalten in der Tabelle an. ULResultSetSchema-Klassen können aus den folgenden Klassen abgerufen werden:

    • ULPreparedStatement
    • ULResultSet
    • ULTable

  • ULDatabaseSchema   Gibt die Anzahl und Namen der Tabellen und Publikationen in der Datenbank sowie die globalen Eigenschaften wie Datums- und Zeitformat an. ULDatabaseSchema-Klassen können von ULConnection-Klassen abgerufen werden.

  • ULTableSchema   Zeigt Informationen über die Spalten- und Indexkonfigurationen an. Die Spalteninformationen in der ULTableSchema-Klasse ergänzen die verfügbaren Informationen aus der ULResultSetSchema-Klasse. Zum Beispiel können Sie ermitteln, ob Spalten Standardwerte haben oder Nullwerte zulassen. ULTableSchema-Klassen können von ULTable-Klassen abgerufen werden.

  • ULIndexSchema   Gibt Informationen über die Spalten im Index zurück. ULIndexSchema-Klassen können aus ULTableSchema-Klassen abgerufen werden.

Die ULResultSetSchema-Klasse wird als Konstantenreferenz zurückgegeben, anders als die ULDatabaseSchema-, ULTableSchema- und ULIndexSchema-Klassen, die als Zeiger zurückgegeben werden. Sie können keine Klasse schließen, die eine Konstantenreferenz zurückgibt, aber Sie müssen Klassen schließen, die als Zeiger zurückgegeben werden.

Mit dem folgenden Code wird die richtige und falsche Verwendung des Schließens von Schemaklassen gezeigt:



// This code demonstrates proper use of the ULResultSetSchema class:
const ULResultSetSchema & rss = prepStmt->GetResultSetSchema();
c_count = prepStmt->GetSchema().GetColumnCount();
 
// This code demonstrates proper use of the ULDatabaseSchema class:
ULDatabaseSchema * dbs = conn->GetResultSetSchema();
t_count = dbs->GetTableCount();
dbs->Close();  // This line is required.

// This code demonstrates improper use of the ULDatabaseSchema class
// because the object needs to be closed using the Close method:
t_count = conn->GetResultSetSchema()->GetTableCount();
 Siehe auch