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

SAP Sybase SQL Anywhere 16.0 » Ultra Light C/C++ プログラミング » アプリケーション開発 » Ultra Light C++ アプリケーション開発

 

スキーマ情報へのアクセス

結果セットまたはデータベース構造の定義は、プログラムを使用して取得できます。これらの記述はスキーマ情報と呼ばれます。この情報は、Ultra Light C API スキーマクラスから使用できます。

注意

Ultra Light C API を使用してスキーマを変更することはできません。スキーマ情報の取得のみが可能です。

次のスキーマオブジェクトと情報にアクセスできます。

  • ULResultSetSchema   クエリ、またはテーブル内のデータの定義です。識別子、名前、各カラムの型情報、およびテーブル内のカラム数を公開します。ULResultSetSchema クラスは、以下のクラスから取得できます。

    • ULPreparedStatement
    • ULResultSet
    • ULTable

  • ULDatabaseSchema   データベース内のテーブルとパブリケーションの数と名前、日付と時刻の形式などのグローバルプロパティを公開します。ULDatabaseSchema クラスは、ULConnection クラスから取得できます。

  • ULTableSchema   カラムとインデックスの設定に関する情報を公開します。ULTableSchema クラスのカラム情報は、ULResultSetSchema クラスから利用できる情報を補完します。たとえば、カラムにデフォルト値があるかどうか、または NULL 値を許可するかどうかを判別できます。ULTableSchema クラスは、ULTable クラスから取得できます。

  • ULIndexSchema   インデックス内のカラムに関する情報を返します。ULIndexSchema クラスは、ULTableSchema クラスから取得できます。

ポインタとして返される ULDatabaseSchema、ULTableSchema、および ULIndexSchema クラスと異なり、ULResultSetSchema クラスは定数参照として返されます。定数参照を返すクラスは閉じられませんが、ポインタとして返されるクラスは閉じる必要があります。

次のコードは、スキーマクラスの正しい閉じ方と不正な閉じ方を示しています。



// 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();
 参照