CDaoQueryDefInfo 構造体
更新 : 2007 年 11 月
CDaoQueryDefInfo 構造体は、データ アクセス オブジェクト (DAO: Data Access Objects) 用に定義されたクエリ定義オブジェクトについての情報を保持します。
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
クエリ定義オブジェクトの一意名。詳細については、DAO ヘルプの「Name Property」を参照してください。このプロパティを直接取得するには CDaoQueryDef::GetName を呼び出します。m_nType
クエリ定義オブジェクトの操作の種類を示す値です。この値は以下のいずれか 1 つになります。dbQSelect 選択。クエリがレコードを選択します。
dbQAction アクション。クエリがデータの移動または変更を行います。レコードは返されません。
dbQCrosstab クロス集計。クエリがスプレッドシートに類似した形式でデータを返します。
dbQDelete 削除。クエリが指定された行のセットを削除します。
dbQUpdate 更新。クエリがレコードのセットを変更します。
dbQAppend 追加。クエリがテーブルまたはクエリの末尾に新しいレコードを追加します。
dbQMakeTable テーブル作成。クエリがレコードセットから新しいテーブルを作成します。
dbQDDL データ定義。クエリがテーブル構造またはその一部に影響します。
dbQSQLPassThrough パススルー。SQL ステートメントが中間処理なしでデータベースのバックエンドに直接渡されます。
dbQSetOperation ユニオン。クエリが、スナップショット タイプのレコードセット オブジェクトを作成します。作成されるオブジェクトには、複数のテーブルで指定されたすべてのレコードから重複するレコードを削除したデータが含まれます。重複したレコードも含めるには、クエリ定義の SQL ステートメントにキーワード ALL を追加します。
dbQSPTBulk dbQSQLPassThrough と共に使用し、レコードを返さないクエリを指定します。
メモ : SQL パススルー クエリを作成する場合は、dbQSQLPassThrough 定数を設定しないでください。この定数は、ユーザーがクエリ定義オブジェクトを作成して Connect プロパティを設定すると、Microsoft Jet データベース エンジンによって自動的に設定されます。
詳細については、DAO ヘルプの「Type Property」を参照してください。
m_dateCreated
クエリ定義の作成日時。クエリ定義の作成日付を直接取得するには、テーブルに関連付けられた CDaoTableDef オブジェクトの GetDateCreated メンバ関数を呼び出します。詳細については、解説を参照してください。さらに、DAO ヘルプの「DateCreated, LastUpdated Properties」を参照してください。m_dateLastUpdated
クエリ定義の最終更新日時。テーブルの最終更新日付を直接取得するには、クエリ定義の GetDateLastUpdated メンバ関数を呼び出してください。詳細については、解説を参照してください。さらに、DAO ヘルプの「DateCreated, LastUpdated Properties」を参照してください。m_bUpdatable
クエリ定義オブジェクトが更新できるかどうかを示します。このプロパティが TRUE のときは、クエリ定義は更新できます。それ以外の場合は、更新できません。"更新できる" とは、クエリ定義オブジェクトのクエリ定義が変更できることを意味します。クエリ定義を更新できる場合は、結果のレコードセットが更新できなくても、クエリ定義オブジェクトの Updatable プロパティが TRUE に設定されます。このプロパティを直接取得するには、クエリ定義の CanUpdate メンバ関数を呼び出します。詳細については、DAO ヘルプの「Updatable Property」を参照してください。m_bReturnsRecords
外部データベースに対する SQL パススルー クエリがレコードを返すかどうかを示します。このプロパティが TRUE のときは、クエリはレコードを返します。このプロパティを直接取得するには、CDaoQueryDef::GetReturnsRecords を呼び出します。外部データベースに対するすべての SQL パススルー クエリがレコードを返すわけではありません。たとえば、SQL SELECT ステートメントはレコードを返しますが、SQL UPDATE ステートメントはレコードを返さずにレコードを更新します。詳細については、DAO ヘルプの「ReturnsRecords Property」を参照してください。m_strSQL
クエリ定義オブジェクトが実行するクエリを定義する SQL ステートメント。SQL プロパティは、クエリを実行するときにレコードを選択、グループ化、順序付けする方法を決定する SQL ステートメントを保持します。クエリを使って、ダイナセット タイプ レコードセット オブジェクトまたはスナップショット タイプレコードセット オブジェクトに含めるレコードを選択できます。また、一括クエリを定義してレコードを返さずにデータを修正できます。クエリ定義の GetSQL メンバ関数を呼び出すことにより、このプロパティを直接取得できます。m_strConnect
パススルー クエリで使われるデータベースのソースについての情報を提供します。この情報は接続文字列の形式をとります。接続文字列の詳細について、および直接このプロパティの値を取得することに関しては、CDaoDatabase::GetConnect メンバ関数を参照してください。m_nODBCTimeout
オープン データベース コネクティビティ (ODBC: Open Database Connectivity) データベース上でクエリが実行されるときに、Microsoft Jet データベース エンジンがタイムアウト エラーを起こすまでの秒数を指定します。たとえば Microsoft SQL Server のような ODBC データベースを使っているとき、ネットワーク トラフィックまたは ODBC サーバーの頻繁な使用のために待たされることがあります。無制限に待つのではなく、エラーを引き起こす前に Microsoft Jet データベース エンジンがどのくらい長い間待つのかを指定できます。既定のタイムアウト値は 60 秒です。クエリ定義の GetODBCTimeout メンバ関数を呼び出して、このプロパティを直接取得できます。詳細については、DAO ヘルプの「ODBCTimeout Property」を参照してください。
解説
クエリ定義はクラス CDaoQueryDef のオブジェクトです。上の "プライマリ"、"セカンダリ"、および "すべて" は、クラス CDaoDatabase の GetQueryDefInfo メンバ関数によってどの情報が返されるかを示しています。
CDaoDatabase::GetQueryDefInfo メンバ関数により取得された情報が、CDaoQueryDefInfo 構造体に格納されます。目的の querydef オブジェクトが属している QueryDefs コレクションを持つデータベース オブジェクトに対して GetQueryDefInfo を呼び出してください。デバッグ用のビルドでは、CDaoQueryDefInfo は Dump メンバ関数も定義しています。Dump 関数を使って CDaoQueryDefInfo オブジェクトの内容をダンプできます。また、CDaoDatabase クラスは、CDaoQueryDefInfo 構造体を通じて返されるすべてのプロパティ値に直接アクセスできるメンバ関数を提供します。そのため、GetQueryDefInfo を呼び出すことはほとんどありません。
新しいフィールド オブジェクトまたはパラメータ オブジェクトをクエリ定義オブジェクトの Fields コレクションまたは Parameters コレクションに追加するとき、基になるデータベースが新しいオブジェクトに指定されたデータ型をサポートしていない場合、例外がスローされます。
日時の設定はクエリ定義が作成または最後に更新されたコンピュータから取得します。マルチユーザー環境では DateCreated プロパティと LastUpdated プロパティの設定に矛盾が生じないように、ユーザーは net time コマンドを使用して、ファイル サーバーから直接日時を取得します。
必要条件
ヘッダー : afxdao.h