次の方法で共有


CDaoQueryDefInfo 構造体

Note

Microsoft Foundation Classes (MFC) ライブラリは引き続きサポートされています。 ただし、機能の追加やドキュメントの更新は行われません。

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

Note

データ アクセス オブジェクト (DAO) は、Office 2013 でサポートされています。 DAO 3.6 は最終バージョンであり、廃止されています。

構文

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 削除: クエリは、指定された行のセットを削除します。

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

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

  • dbQMakeTable テーブルの作成: クエリはレコードセットから新しいテーブルを作成します。

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

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

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

  • dbQSPTBulk dbQSQLPassThroughと共に使用して、レコードを返さないクエリを指定します。

Note

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

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

m_dateCreated
querydef が作成された日付と時刻。 querydef が作成された日付を直接取得するには、テーブルに関連付けられている オブジェクトの CDaoTableDef メンバー関数を呼び出します。 詳細については、「解説」をご覧ください。 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 SELECT ステートメントはレコードを返します。 詳細については、DAO ヘルプのトピック「ReturnsRecords プロパティ」を参照してください。

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

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

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

解説

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

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

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

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

要件

ヘッダー: afxdao.h

関連項目

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