ODBC Driver for Microsoft Project

Build 24.0.9062

スキーマ検出

次のセクションでは、ODBC API のスキーマ情報を取得する方法を示します。 利用可能なシステムテーブルをクエリしてドライバーメタデータを取得するには、データモデル を参照してください。

テーブルとビューのリスト

SQLTables 関数を使用して、存在するすべてのテーブルまたはビューをリストできます。TableType パラメータでは'TABLE' または'VIEW'、または両方を使用でき、これによりテーブルとビューをそれぞれリストするかどうかを決定します。SQLTables の呼び出し後、SQLFetch とSQLBindCol を使用してテーブルリストを読み取ることができます。これはSQL クエリからのカラムの読み取りと似ており、データのクエリ で説明します。

SQLTables(hstmt, 0, 0, 0, 0, 0, 0, (SQLCHAR*)"'TABLE','VIEW'", SQL_NTS);

テーブルカラムのリスト

SQLColumns 関数を使用して、指定したテーブルのすべてのカラムをリストできます。SQLColumns の呼び出し後、SQLFetch とSQLBindCol を使用してカラムリストを読み取ることができます。これはSQL クエリからのカラムの読み取りと似ており、データのクエリ で説明します。

SQLColumns(hstmt, 0, 0, 0, 0, (SQLCHAR*)"DemoTable", SQL_NTS, 0, 0);

カラム情報の取得

SQLColAttribute 関数を使用して、カラムに関する情報を取得できます。ColumnNumber パラメータは、1から始まるカラムインデックスです。FieldIdentifier パラメータでは、SQL_COLUMN_NAME、SQL_COLUMN_LENGTH、SQL_DESC_TYPE などを使用できます。

SQLCHAR columnName[30];
SQLSMALLINT cbColumnName;
SQLColAttribute(hstmt, 1, SQL_COLUMN_NAME, columnName, 30, &cbColumnName, NULL);

また、SQLDescribeCol 関数を使用して、カラムの名前、型、サイズ、10進数字、null 許可型を取得できます。ColumnNumber パラメータは、1から始まるカラムインデックスです。

SQLCHAR columnName[256];
SQLSMALLINT cbColumnName;
SQLSMALLINT dataType;
SQLULEN columnSize;
SQLSMALLINT decimalDigits;
SQLSMALLINT nullable;
SQLDescribeCol(hstmt, 1, columnName, 256, &cbColumnName, &dataType, &columnSize, &decimalDigits, &nullable);

主キーカラムのリスト

SQLPrimaryKeys 関数を使用して、テーブルの主キーカラムのカラム名とシーケンス番号を取得できます。SQLPrimaryKeys の呼び出し後、SQLFetch とSQLBindCol を使用してテーブルリストを読み取ることができます。これはSQL クエリからのカラムの読み取りと似ており、データのクエリ で説明します。

SQLPrimaryKeys(hstmt, NULL, SQL_NTS, NULL, SQL_NTS, (SQLCHAR*)"DemoTable", SQL_NTS);

プロシージャのリスト

SQLProcedures 関数を使用して、存在するすべてのプロシージャをリストできます。SQLProcedures の呼び出し後、SQLFetch とSQLBindCol を使用してテーブルリストを読み取ることができます。これはSQL クエリからのカラムの読み取りと似ており、データのクエリ で説明します。

SQLProcedures(hstmt, NULL, SQL_NTS, NULL, SQL_NTS, NULL, SQL_NTS);

プロシージャカラムのリスト

SQLProcedureColumns 関数を使用して、指定したプロシージャのすべてのカラムをリストできます。SQLProcedureColumns の呼び出し後、SQLFetch とSQLBindCol を使用してテーブルリストを読み取ることができます。これはSQL クエリからのカラムの読み取りと似ており、データのクエリ で説明します。

SQLProcedureColumns(hstmt, NULL, SQL_NTS, NULL, SQL_NTS, (SQLCHAR*)"DemoProcedure", SQL_NTS, NULL, SQL_NTS);

サポートされるODBC 関数のリスト

SQLGetFunctions 関数を使用して、ODBC ドライバーで特定のODBC 関数がサポートされているかどうかを特定できます。FunctionId(2番目のパラメータ)には、SQL_API_ALL_FUNCTIONS またはSQL_API_ODBC3_ALL_FUNCTIONS を指定できます。SupportedPtr(3番目のパラメータ)は、100個の要素のSQLUSMALLINT 配列にする必要があります。ODBC 関数がドライバーでサポートされる場合、呼び出しによってSQLUSMALLINT 要素はtrue に設定されます。そうでない場合はfalse に設定されます。

SQLUSMALLINT functions[100];
SQLGetFunctions(hdbc, SQL_API_ALL_FUNCTIONS, functions);

型情報の取得

SQLGetTypeInfo 関数を使用して、指定したデータ型またはすべての型の情報を返すことができます。SQLGetTypeInfo の呼び出し後、SQLFetch とSQLBindCol を使用して情報を読み取ります。コード例はデータのクエリ を参照してください。

SQLGetTypeInfo(hstmt, SQL_ALL_TYPES);

パラメータ数の取得

SQLNumParams 関数を使用して、クエリのパラメータ数を取得できます。

SQLSMALLINT paramCount;
SQLNumParams(hstmt, &paramCount);

カラム数の取得

SQLNumResultCols 関数を使用して、テーブルのカラム数を取得できます。

SQLSMALLINT columnCount;
SQLNumResultCols(hstmt, &columnCount);

行数の取得

SQLRowCount 関数を使用して、テーブルの行数を取得できます。

SQLLEN rowCount;
SQLRowCount(hstmt, &rowCount);

カラムの特別な情報のリスト

SQLSpecialColumns 関数を使用して、テーブルのすべてのカラムと特別な情報をリストできます。IdentifierType(2番目のパラメータ)には、SQL_BEST_ROWID またはSQL_ROWVER を指定できます。Scope(9番目のパラメータ)には、SQL_SCOPE_CURROW、SQL_SCOPE_TRANSACTION、またはSQL_SCOPE_SESSION を指定できます。SQLSpecialColumns の呼び出し後、SQLFetch とSQLBindCol を使用してカラムリストを読み取ります。これはSQL クエリからのカラムの読み取りと似ており、データのクエリ で説明します。

SQLSpecialColumns(hstmt, SQL_BEST_ROWID, NULL, 0, NULL,0, (SQLCHAR *)"DemoProcedure", SQL_NTS, SQL_SCOPE_SESSION, SQL_NULLABLE);

テーブルの統計情報のリスト

SQLStatistics 関数を使用して、テーブルに関連付けられた統計とインデックスをリストできます。IndexType(8番目のパラメータ)には、SQL_INDEX_UNIQUE またはSQL_INDEX_ALL を指定できます。SQLStatistics の呼び出し後、SQLFetch とSQLBindCol を使用してテーブルリストを読み取ることができます。これはSQL クエリからのカラムの読み取りと似ており、データのクエリ で説明します。

SQLStatistics(hstmt, NULL, 0, NULL, 0, (SQLCHAR*)"DemoProcedure", SQL_NTS, SQL_INDEX_UNIQUE, SQL_QUICK);

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062