次の方法で共有


CDaoQueryDefInfo 構造体

この CDaoQueryDefInfo 構造体には、データ アクセス オブジェクト (DAO) に対して定義された querydef オブジェクトに関する情報が含まれています。

構文

struct CDaoQueryDefInfo
{
    CString m_strName;               // Primary
    short m_nType;   // Primary
    COleDateTime m_dateCreated;      // Secondary
    COleDateTime m_dateLastUpdated;  // Secondary
    BOOL m_bUpdatable;               // Secondary
    BOOL m_bReturnsRecords;          // Secondary
    CString m_strSQL;                // All
    CString m_strConnect;            // All
    short m_nODBCTimeout;            // All
};

パラメーター

m_strName
querydef オブジェクトに一意の名前を付けます。 詳細については、DAO ヘルプのトピック「Name プロパティ」を参照してください。 このプロパティを直接取得するには、CDaoQueryDef::GetName を呼び出します。

m_nType
querydef オブジェクトの操作の種類を示す値。 値は次のいずれかになります。

  • dbQSelect 選択 — クエリによってレコードが選択されます。

  • dbQAction アクション — クエリはデータを移動または変更しますが、レコードは返しません。

  • dbQCrosstab クロス集計 — クエリはスプレッドシートのような形式でデータを返します。

  • dbQDelete Delete — クエリは、指定された行のセットを削除します。

  • dbQUpdate 更新 — クエリによってレコードのセットが変更されます。

  • dbQAppend 追加 — クエリは、テーブルまたはクエリの末尾に新しいレコードを追加します。

  • dbQMakeTable テーブル作成 — クエリによってレコードセットから新しいテーブルが作成されます。

  • dbQDDL データ定義 — クエリは、テーブルまたはその部分の構造に影響します。

  • dbQSQLPassThrough パススルー - SQL ステートメントは、中間処理なしでデータベース バックエンドに直接渡されます。

  • dbQSetOperationUnion — クエリは、重複レコードが削除された 2 つ以上のテーブル内のすべての指定されたレコードのデータを含む、スナップショット型のレコードセット オブジェクトを作成します。 重複を含めるには、querydef の SQL ステートメントに キーワード (keyword) ALL を追加します。

  • dbQSPTBulk レコードを返さないクエリを指定するために使用 dbQSQLPassThrough されます。

Note

SQL パススルー クエリを作成するには、定数を dbQSQLPassThrough 設定しません。 これは、querydef オブジェクトを作成して Connect プロパティを設定すると、Microsoft Jet データベース エンジンによって自動的に設定されます。

詳細については、DAO ヘルプの「Type プロパティ」を参照してください。

m_dateCreated
querydef が作成された日付と時刻。 querydef が作成された日付を直接取得するには、テーブルに関連付けられているオブジェクトの CDaoTableDef GetDateCreated メンバー関数を呼び出します。 詳細については、以下のコメントを参照してください。 DAO ヘルプの「DateCreated,LastUpdated プロパティ」のトピックも参照してください。

m_dateLastUpdated
querydef に対して行われた最新の変更の日時。 テーブルが最後に更新された日付を直接取得するには、querydef の GetDateLastUpdated メンバー関数を呼び出します。 詳細については、以下のコメントを参照してください。 DAO ヘルプの「DateCreated,LastUpdated プロパティ」のトピックを参照してください。

m_bUpdatable
querydef オブジェクトに変更を加えることができるかどうかを示します。 このプロパティが TRUE の場合、querydef は更新可能です。それ以外の場合は、そうではありません。 更新可能とは、querydef オブジェクトのクエリ定義を変更できることを意味します。 結果のレコードセットが更新できない場合でも、クエリ定義を更新できる場合、querydef オブジェクトの Updatable プロパティは TRUE に設定されます。 このプロパティを直接取得するには、querydef の CanUpdate メンバー関数を呼び出します。 詳細については、DAO ヘルプの「更新可能なプロパティ」を参照してください。

m_bReturnsRecords
外部データベースへの SQL パススルー クエリがレコードを返すかどうかを示します。 このプロパティが TRUE の場合、クエリはレコードを返します。 このプロパティを直接取得するには、CDaoQueryDef::GetReturnsRecords を呼び出 します。 外部データベースに対するすべての SQL パススルー クエリがレコードを返すわけではありません。 たとえば、SQL UPDATE ステートメントはレコードを返さずにレコードを更新し、SQL Standard Edition LECT ステートメントはレコードを返します。 詳細については、DAO ヘルプのトピック「ReturnsRecords プロパティ」を参照してください。

m_strSQL
querydef オブジェクトによって実行されるクエリを定義する SQL ステートメント。 SQL プロパティには、クエリの実行時にレコードを選択、グループ化、順序付けする方法を決定する SQL ステートメントが含まれています。 このクエリを使用して、ダイナセットタイプまたはスナップショットタイプのレコードセットオブジェクトに含めるレコードを選択できます。 レコードを返さずにデータを変更する一括クエリを定義することもできます。 このプロパティの値を直接取得するには、querydef の GetSQL メンバー関数を呼び出します。

m_strConnect
パススルー クエリで使用されるデータベースのソースに関する情報を提供します。 この情報は、接続文字列の形式になります。 接続文字列の詳細と、このプロパティの値を直接取得する方法の詳細については、CDaoDatabase::GetConnect メンバー関数を参照してください

m_nODBCTimeout
ODBC データベースでクエリが実行されたときにタイムアウト エラーが発生するまでに Microsoft Jet データベース エンジンが待機する秒数。 Microsoft SQL Server などの ODBC データベースを使用している場合、ネットワーク トラフィックや ODBC サーバーの使用が多いため、遅延が発生する可能性があります。 無期限に待機するのではなく、Microsoft Jet エンジンがエラーを生成するまでの待機時間を指定できます。 既定のタイムアウト値は 60 秒です。 このプロパティの値を直接取得するには、querydef の GetODBCTimeout メンバー関数を呼び出します。 詳細については、DAO ヘルプの「ODBCTimeout プロパティ」を参照してください。

解説

querydef は CDaoQueryDef クラス のオブジェクトです。 上記の Primary、Secondary、All への参照は、クラスCDaoDatabaseの GetQueryDefInfo メンバー関数によって情報がどのように返されるかを示します。

CDaoDatabase::GetQueryDefInfo メンバー関数によって取得された情報は、構造体にCDaoQueryDefInfo格納されます。 querydef オブジェクトが格納されている QueryDefs コレクション内のデータベース オブジェクトを呼び出 GetQueryDefInfo します。 CDaoQueryDefInfo では、デバッグ ビルドで Dump メンバー関数も定義します。 Dump を使用して、CDaoQueryDefInfo オブジェクトの内容をダンプすることができます。 クラス CDaoDatabase には、オブジェクトで CDaoQueryDefInfo 返されるすべてのプロパティに直接アクセスするためのメンバー関数も用意されているため、呼び出す GetQueryDefInfo必要はほとんどありません。

querydef オブジェクトの Fields または Parameters コレクションに新しいフィールドまたはパラメーター オブジェクトを追加すると、基になるデータベースが新しいオブジェクトに指定されたデータ型をサポートしていない場合、例外がスローされます。

日付と時刻の設定は、querydef が作成または最後に更新されたコンピューターから派生します。 マルチユーザー環境では、DateCreated プロパティと LastUpdated プロパティ設定の不一致を回避するために、net time コマンドを使用してファイル サーバーからこれらの設定を直接取得する必要があります。

必要条件

ヘッダー: afxdao.h

関連項目

構造体、スタイル、コールバック関数とメッセージ マップ
CDaoQueryDef クラス
CDaoDatabase クラス