CDaoQueryDefInfo 構造体
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
オブジェクトの 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 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
の GetQueryDefInfo メンバー関数によって情報がどのように返されるかを示します。
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 クラス