CDaoQueryDef クラス

クエリ定義、つまり "querydef" を表し、通常はデータベースに保存されています。

構文

class CDaoQueryDef : public CObject

メンバー

パブリック コンストラクター

名前 説明
CDaoQueryDef::CDaoQueryDef CDaoQueryDef オブジェクトを構築します。 次の呼び出し Open または Create、ニーズに応じて。

パブリック メソッド

名前 説明
CDaoQueryDef::Append 保存されたクエリとして、データベースの QueryDefs コレクションに querydef を追加します。
CDaoQueryDef::CanUpdate クエリでデータベースを更新できる場合は、0 以外の値を返します。
CDaoQueryDef::Close querydef オブジェクトを閉じます。 終了したら、C++ オブジェクトを破棄します。
CDaoQueryDef::Create 基になる DAO querydef オブジェクトを作成します。 querydef を一時クエリとして使用するか、または呼び出 Append してデータベースに保存します。
CDaoQueryDef::Execute querydef オブジェクトによって定義されたクエリを実行します。
CDaoQueryDef::GetConnect querydef に関連付けられている接続文字列を返します。 接続文字列は、データ ソースを識別します。 (SQL パススルー クエリの場合のみ。それ以外の場合は空の文字列)。
CDaoQueryDef::GetDateCreated 保存されたクエリが作成された日付を返します。
CDaoQueryDef::GetDateLastUpdated 保存されたクエリが最後に更新された日付を返します。
CDaoQueryDef::GetFieldCount querydef によって定義されたフィールドの数を返します。
CDaoQueryDef::GetFieldInfo クエリで定義されている指定されたフィールドに関する情報を返します。
CDaoQueryDef::GetName querydef の名前を返します。
CDaoQueryDef::GetODBCTimeout querydef の実行時に ODBC で使用されるタイムアウト値 (ODBC クエリの場合) を返します。 これにより、クエリのアクションの完了を許可する期間が決まります。
CDaoQueryDef::GetParameterCount クエリに定義されているパラメーターの数を返します。
CDaoQueryDef::GetParameterInfo 指定したパラメーターに関する情報をクエリに返します。
CDaoQueryDef::GetParamValue 指定したパラメーターの値をクエリに返します。
CDaoQueryDef::GetRecordsAffected アクション クエリの影響を受けるレコードの数を返します。
CDaoQueryDef::GetReturnsRecords querydef によって定義されたクエリがレコードを返す場合は、0 以外の値を返します。
CDaoQueryDef::GetSQL querydef によって定義されたクエリを指定する SQL 文字列を返します。
CDaoQueryDef::GetType クエリの種類 (delete、update、append、make-table など) を返します。
CDaoQueryDef::IsOpen querydef が開き、実行できる場合は 0 以外の値を返します。
CDaoQueryDef::Open データベースの QueryDefs コレクションに格納されている既存の querydef を開きます。
CDaoQueryDef::SetConnect ODBC データ ソースの SQL パススルー クエリの接続文字列を設定します。
CDaoQueryDef::SetName 保存されたクエリの名前を設定し、querydef の作成時に使用されている名前を置き換えます。
CDaoQueryDef::SetODBCTimeout querydef の実行時に ODBC で使用されるタイムアウト値 (ODBC クエリの場合) を設定します。
CDaoQueryDef::SetParamValue 指定したパラメーターの値をクエリに設定します。
CDaoQueryDef::SetReturnsRecords querydef がレコードを返すかどうかを指定します。 この属性を TRUE に設定することは、SQL パススルー クエリでのみ有効です。
CDaoQueryDef::SetSQL querydef によって定義されたクエリを指定する SQL 文字列を設定します。

パブリック データ メンバー

名前 説明
CDaoQueryDef::m_pDAOQueryDef 基になる DAO querydef オブジェクトの OLE インターフェイスへのポインター。
CDaoQueryDef::m_pDatabase querydef が CDaoDatabase 関連付けられているオブジェクトへのポインター。 querydef はデータベースに保存される場合と保存されない場合があります。

解説

querydef は、クエリを記述する SQL ステートメントとそのプロパティ ("Date Created" や "ODBC Timeout" など) を含むデータ アクセス オブジェクトです。一時的な querydef オブジェクトを保存せずに作成することもできますが、一般的に再利用されるクエリをデータベースに保存すると便利であり、はるかに効率的です。 CDaoDatabase オブジェクトメイン保存された querydef を含む QueryDefs コレクションと呼ばれるコレクションを格納します。

Note

DAO データベース クラスは、Open Database Connectivity (ODBC) に基づく MFC データベース クラスとは異なります。 すべての DAO データベース クラス名には、"CDao" プレフィックスがあります。 DAO クラスを使用しても、ODBC データ ソースにアクセスできます。 一般に、DAO に基づく MFC クラスは、ODBC に基づく MFC クラスよりも能力が高くなります。DAO ベースのクラスは、ODBC ドライバーを介して、独自のデータベース エンジンを介してデータにアクセスできます。 DAO ベースのクラスでは、DAO を直接呼び出さなくても、クラスを介したテーブルの追加などのデータ定義言語 (DDL) 操作もサポートされます。

使用法

querydef オブジェクトを使用して、既存の保存済みクエリを操作するか、新しい保存されたクエリまたは一時クエリを作成します。

  1. いずれの場合も、最初にオブジェクトを CDaoQueryDef 構築し、クエリが 属する CDaoDatabase オブジェクトへのポインターを指定します。

  2. 次に、必要に応じて次の操作を行います。

    • 既存の保存されたクエリを使用するには、querydef オブジェクトの Open メンバー関数を呼び出し、保存されたクエリの名前を指定します。

    • 新しい保存されたクエリを作成するには、querydef オブジェクトの Create メンバー関数を呼び出し、クエリの名前を指定します。 次に、Append を呼び出して、データベースの QueryDefs コレクションにクエリを追加してクエリを保存します。 Create は querydef をオープン状態にするため、呼び出した Create 後は呼び出 Openしません。

    • 一時的な querydef を作成するには、次を呼び出します Create。 クエリ名に空の文字列を渡します。 Append を呼び出さないでください。

querydef オブジェクトの使用が完了したら、その Close メンバー関数を呼び出し、querydef オブジェクトを破棄します。

ヒント

保存されたクエリを作成する最も簡単な方法は、Microsoft Access を使用してクエリを作成し、データベースに格納することです。 その後、MFC コードで開いて使用できます。

目的

querydef オブジェクトは、次のいずれかの目的で使用できます。

  • オブジェクトを CDaoRecordset 作成するには

  • オブジェクトの Execute メンバー関数を呼び出してアクション クエリまたは SQL パススルー クエリを直接実行するには

選択、アクション、クロス集計、削除、更新、追加、テーブル作成、データ定義、SQL パススルー、共用体、一括クエリなど、あらゆる種類のクエリに対して querydef オブジェクトを使用できます。 クエリの種類は、指定した SQL ステートメントの内容によって決まります。 クエリ型の詳細については、GetType メンバー関数をExecute参照してください。 レコードセットは、通常、Standard Edition LECT ..を使用する行を返すクエリに使用されます。FROM キーワード (keyword)。 Execute は、一括操作に最も一般的に使用されます。 詳細については、「Execute」および「CDaoRecordset」を参照してください

Querydefs と Recordsets

querydef オブジェクトを使用してオブジェクトを CDaoRecordset 作成するには、通常、前述のように querydef を作成または開きます。 次に、CDaoRecordset::Open を呼び出すときに querydef オブジェクトへのポインターを渡して、レコードセット オブジェクトを構築します。 渡すクエリ定義は、開いている状態である必要があります。 詳細については、CDaoRecordset クラスを参照してください。

開いている状態でない限り、querydef を使用してレコードセットを作成することはできません (querydef の最も一般的な用途)。 またはCreateを呼び出Openして、querydef を開いている状態にします。

外部データベース

Querydef オブジェクトは、外部データベース エンジンのネイティブ SQL 言語を使用する場合に推奨される方法です。 たとえば、(Microsoft SQL Server で使用される) Transact SQL クエリを作成し、querydef オブジェクトに格納できます。 Microsoft Jet データベース エンジンに基づいていない SQL クエリを使用する必要がある場合は、外部データ ソースを指す接続文字列を指定する必要があります。 有効な接続文字列を持つクエリは、データベース エンジンをバイパスし、クエリを外部データベース サーバーに直接渡して処理します。

ヒント

ODBC テーブルを操作する場合は、Microsoft Jet (.MDB) データベース。

関連情報については、DAO SDK のトピック「QueryDef オブジェクト」、「QueryDefs コレクション」、「CdbDatabase オブジェクト」を参照してください。

継承階層

CObject

CDaoQueryDef

必要条件

ヘッダー: afxdao.h

CDaoQueryDef::Append

Create を呼び出して新しい querydef オブジェクトを作成した後、このメンバー関数を呼び出します。

virtual void Append();

解説

Append は、オブジェクトをデータベースの QueryDefs コレクションに追加することで、querydef をデータベースに保存します。 querydef は追加せずに一時オブジェクトとして使用できますが、永続化する場合は、 Append.

一時的な querydef オブジェクトを追加しようとすると、MFC は CDaoException 型 の例外をスローします

CDaoQueryDef::CanUpdate

このメンバー関数を呼び出して、名前や SQL 文字列の変更など、querydef を変更できるかどうかを判断します。

BOOL CanUpdate();

戻り値

querydef の変更が許可されている場合は 0 以外。それ以外の場合は 0。

解説

querydef は、次の場合に変更できます。

  • これは、読み取り専用で開かれているデータベースに基づいていません。

  • データベースに対する更新アクセス許可があります。

    これは、セキュリティ機能を実装しているかどうかによって異なります。 MFC はセキュリティのサポートを提供していません。DAO を直接呼び出すか、Microsoft Access を使用して実装する必要があります。 DAO ヘルプの「Permissions プロパティ」のトピックを参照してください。

CDaoQueryDef::CDaoQueryDef

CDaoQueryDef オブジェクトを構築します。

CDaoQueryDef(CDaoDatabase* pDatabase);

パラメーター

pDatabase
開いている CDaoDatabase オブジェクトへのポインター。

解説

オブジェクトは、データベースの QueryDefs コレクションに格納されている既存の querydef、コレクションに格納される新しいクエリ、または格納されない一時クエリを表すことができます。 次の手順は、querydef の種類によって異なります。

  • オブジェクトが既存の querydef を表す場合は、オブジェクトの Open メンバー関数を呼び出して初期化します。

  • オブジェクトが保存する新しい querydef を表す場合は、オブジェクトの Create メンバー関数を 呼び出します。 これにより、データベースの QueryDefs コレクションにオブジェクトが追加されます。 次に、メンバー関数を呼び出 CDaoQueryDef してオブジェクトの属性を設定します。 最後に、Append を呼び出 します

  • オブジェクトが一時的な querydef (データベースに保存されない) を表す場合は、クエリの名前に空の文字列を渡して呼び出 Createします。 呼び出した Create後、属性を直接設定して querydef を初期化します。 Append を呼び出さないでください。

querydef の属性を設定するには、SetName、SetSQLSetConnectSetODBCTimeout、および SetReturnsRecords メンバー関数を使用できます。

querydef オブジェクトで終了したら、その Close メンバー関数を呼び出します。 querydef へのポインターがある場合は、演算子を delete 使用して C++ オブジェクトを破棄します。

CDaoQueryDef::Close

querydef オブジェクトの使用が完了したら、このメンバー関数を呼び出します。

virtual void Close();

解説

querydef を閉じると、基になる DAO オブジェクトは解放されますが、保存されている DAO querydef オブジェクトや C++ CDaoQueryDef オブジェクトは破棄されません。 これは、DAO のデータベースの QueryDefs コレクションから querydef を削除する CDaoDatabase::D eleteQueryDef と同じではありません (一時的な querydef ではない場合)。

CDaoQueryDef::Create

このメンバー関数を呼び出して、新しい保存済みクエリまたは新しい一時クエリを作成します。

virtual void Create(
    LPCTSTR lpszName = NULL,
    LPCTSTR lpszSQL = NULL);

パラメーター

lpszName
データベースに保存されたクエリの一意の名前。 文字列の詳細については、DAO ヘルプの「CreateQueryDef メソッド」を参照してください。 既定値 (空の文字列) を受け入れると、一時的な querydef が作成されます。 このようなクエリは、QueryDefs コレクションには保存されません。

Lpszsql
クエリを定義する SQL 文字列。 既定値 NULL をそのまま使用する場合は、後で SetSQL を呼び出して文字列を設定する必要があります。 それまでは、クエリは未定義です。 ただし、未定義のクエリを使用してレコードセットを開くことができます。詳細については、「解説」を参照してください。 QueryDefs コレクションに querydef を追加する前に、SQL ステートメントを定義する必要があります。

解説

lpszName名前を渡す場合は、Append を呼び出して、データベースの QueryDefs コレクションに querydef を保存できます。 それ以外の場合、オブジェクトは一時的な querydef であり、保存されません。 どちらの場合も、querydef は開いている状態であり、これを使用して CDaoRecordset オブジェクトを作成するか、querydef の Execute メンバー関数を呼び出すことができます。

lpszSQLSQL ステートメントを指定しない場合、クエリExecuteを実行することはできませんが、それを使用してレコードセットを作成できます。 その場合、MFC はレコードセットの既定の SQL ステートメントを使用します。

CDaoQueryDef::Execute

このメンバー関数を呼び出して、querydef オブジェクトによって定義されたクエリを実行します。

virtual void Execute(int nOptions = dbFailOnError);

パラメーター

nOptions
クエリの特性を決定する整数。 関連情報については、DAO ヘルプの「メソッドの実行」のトピックを参照してください。 ビットごとの OR 演算子 (|) を使用して、この引数に対して次の定数を組み合わせることができます。

  • dbDenyWrite 他のユーザーへの書き込みアクセス許可を拒否します。

  • dbInconsistent 一貫性のない更新。

  • dbConsistent 一貫性のある更新。

  • dbSQLPassThrough SQL パススルー。 処理のために SQL ステートメントを ODBC データベースに渡します。

  • dbFailOnError 既定値。 エラーが発生した場合は更新プログラムをロールバックし、ユーザーにエラーを報告します。

  • dbSeeChanges 編集中のデータを別のユーザーが変更している場合は、実行時エラーを生成します。

Note

用語 "consistent" と "consistent" の説明については、DAO ヘルプの「メソッドの実行」のトピックを参照してください。

解説

この方法で実行するために使用される Querydef オブジェクトは、次のいずれかのクエリの種類のみを表すことができます。

  • アクション クエリ

  • SQL パススルー クエリ

Execute は、選択クエリなどのレコードを返すクエリでは機能しません。 Executeは、UPDATE、IN Standard Edition RTStandard Edition LECT INTO などの一括操作クエリ、またはデータ定義言語 (DDL) 操作に一般的に使用されます。

ヒント

ODBC データ ソースを操作する場合は、Microsoft Jet (.MDB) データベース。 詳細については、DAO ヘルプの「DAO を使用した外部データベースへのアクセス」を参照してください。

querydef オブジェクトの GetRecordsAffected メンバー関数を呼び出して、最新 Execute の呼び出しの影響を受けるレコードの数を確認します。 たとえば、 GetRecordsAffected アクション クエリの実行時に削除、更新、または挿入されたレコードの数に関する情報を返します。 連鎖更新または削除が有効な場合、返されるカウントは関連テーブルの変更を反映しません。

両方 dbInconsistent を含める場合、 dbConsistent または両方を含めなければ、結果は既定値 dbInconsistentになります。

Execute はレコードセットを返しません。 レコードを選択するクエリで使用 Execute すると、MFC は CDaoException 型 の例外をスローします

CDaoQueryDef::GetConnect

このメンバー関数を呼び出して、querydef のデータ ソースに関連付けられている接続文字列を取得します。

CString GetConnect();

戻り値

querydef の接続文字列を含む CString

解説

この関数は、ODBC データ ソースと特定の ISAM ドライバーでのみ使用されます。 Microsoft Jet (.MDB) データベース。この場合は、 GetConnect 空の文字列を返します。 詳細については、「SetConnect」を参照してください

ヒント

ODBC テーブルを操作する場合は、それらを .MDB データベース。 詳細については、DAO ヘルプの「DAO を使用した外部データベースへのアクセス」を参照してください。

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

CDaoQueryDef::GetDateCreated

このメンバー関数を呼び出して、querydef オブジェクトが作成された日付を取得します。

COleDateTime GetDateCreated();

戻り値

querydef が作成された日時を含む COleDateTime オブジェクト。

解説

関連情報については、DAO ヘルプの「DateCreated,LastUpdated プロパティ」を参照してください。

CDaoQueryDef::GetDateLastUpdated

このメンバー関数を呼び出して、querydef オブジェクトのプロパティ (名前、SQL 文字列、接続文字列など) が変更された日付を取得します。

COleDateTime GetDateLastUpdated();

戻り値

querydef が最後に更新された日時を含む COleDateTime オブジェクト。

解説

関連情報については、DAO ヘルプの「DateCreated,LastUpdated プロパティ」を参照してください。

CDaoQueryDef::GetFieldCount

このメンバー関数を呼び出して、クエリ内のフィールドの数を取得します。

short GetFieldCount();

戻り値

クエリで定義されているフィールドの数。

解説

GetFieldCount は、querydef 内のすべてのフィールドをループ処理する場合に便利です。 そのためには、GetFieldInfo と組み合わせて使用GetFieldCountします

CDaoQueryDef::GetFieldInfo

このメンバー関数を呼び出して、querydef で定義されているフィールドに関するさまざまな種類の情報を取得します。

void GetFieldInfo(
    int nIndex,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetFieldInfo(
    LPCTSTR lpszName,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

パラメーター

Nindex
querydef の Fields コレクション内の目的のフィールドの 0 から始まるインデックス。インデックスによる検索用です。

Fieldinfo
要求された情報を CDaoFieldInfo 返すオブジェクトへの参照。

dwInfoOptions
取得するフィールドに関する情報を指定するオプション。 使用可能なオプションと、関数が返す原因を次に示します。

  • AFX_DAO_PRIMARY_INFO (既定) 名前、型、サイズ、属性

  • AFX_DAO_Standard EditionCONDARY_INFOプライマリ情報に加えて、序数の位置、必須、長さ 0 の許可、ソース フィールド、外部名、ソース テーブル、照合順序

  • AFX_DAO_ALL_INFOプライマリとセカンダリの情報に加えて、既定値、検証テキスト、検証規則

lpszName
名前で検索する目的のフィールドの名前を含む文字列。 CString使用できます。

解説

fieldinfo返される情報の説明については、CDaoFieldInfo 構造体を参照してください。 この構造体には、上記の dwInfoOptions の説明 情報に対応するメンバーがあります 。 1 レベルの情報を要求すると、以前のレベルの情報も取得されます。

CDaoQueryDef::GetName

このメンバー関数を呼び出して、querydef によって表されるクエリの名前を取得します。

CString GetName();

戻り値

クエリの名前。

解説

Querydef 名は、一意のユーザー定義名です。 querydef 名の詳細については、DAO ヘルプの「Name プロパティ」を参照してください。

CDaoQueryDef::GetODBCTimeout

ODBC データ ソースに対するクエリがタイムアウトする前に、このメンバー関数を呼び出して現在の制限時間を取得します。

short GetODBCTimeout();

戻り値

クエリがタイムアウトするまでの秒数。

解説

この制限時間の詳細については、DAO ヘルプの「ODBCTimeout プロパティ」を参照してください。

ヒント

ODBC テーブルを操作する場合は、Microsoft Jet (.MDB) データベース。 詳細については、DAO ヘルプの「DAO を使用した外部データベースへのアクセス」を参照してください。

CDaoQueryDef::GetParameterCount

このメンバー関数を呼び出して、保存されたクエリ内のパラメーターの数を取得します。

short GetParameterCount();

戻り値

クエリで定義されているパラメーターの数。

解説

GetParameterCount は、querydef 内のすべてのパラメーターをループ処理する場合に便利です。 そのためには、GetParameterInfo と組み合わせて使用GetParameterCountします

関連情報については、DAO ヘルプの「パラメーター オブジェクト」、「パラメーター コレクション」、「PARAMETERS 宣言 (SQL)」の各トピックを参照してください。

CDaoQueryDef::GetParameterInfo

querydef で定義されているパラメーターに関する情報を取得するには、このメンバー関数を呼び出します。

void GetParameterInfo(
    int nIndex,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetParameterInfo(
    LPCTSTR lpszName,
    CDaoParameterInfo& paraminfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

パラメーター

Nindex
クエリ定義の Parameters コレクション内の必要なパラメーターの 0 から始まるインデックス 。インデックスによる参照用です。

paraminfo
要求された情報を 返す CDaoParameterInfo オブジェクトへの参照。

dwInfoOptions
取得するパラメーターに関する情報を指定するオプション。 使用可能なオプションは、関数が返す原因と共に、次の一覧に示されています。

  • AFX_DAO_PRIMARY_INFO (既定) の名前、種類

lpszName
名前による検索に使用する、目的のパラメーターの名前を含む文字列。 CString使用できます。

解説

paraminfo返される情報の説明については、CDaoParameterInfo 構造体を参照してください。 この構造体には、上記の dwInfoOptions の説明 情報に対応するメンバーがあります

関連情報については、DAO ヘルプの「PARAMETERS 宣言 (SQL)」を参照してください。

CDaoQueryDef::GetParamValue

このメンバー関数を呼び出して、querydef の Parameters コレクションに格納されている指定されたパラメーターの現在の値を取得します。

virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);

パラメーター

lpszName
名前による検索に使用する値を持つパラメーターの名前。

Nindex
クエリ定義の Parameters コレクション内のパラメーターの 0 から始まるインデックス。インデックスによる検索用です。 この値は、GetParameterCount と GetParameterInfo呼び出しで取得できます。

戻り値

パラメーターの値を含む COleVariant クラスのオブジェクト。

解説

パラメーターには、名前またはコレクション内の序数の位置でアクセスできます。

関連情報については、DAO ヘルプの「PARAMETERS 宣言 (SQL)」を参照してください。

CDaoQueryDef::GetRecordsAffected

このメンバー関数を呼び出して、Execute の最後の呼び出しによって影響を受けたレコードの数を確認します。

long GetRecordsAffected();

戻り値

影響を受けるレコードの数。

解説

連鎖更新または削除が有効な場合、返されるカウントは関連テーブルの変更を反映しません。

関連情報については、DAO ヘルプの「RecordsAffected プロパティ」を参照してください。

CDaoQueryDef::GetReturnsRecords

このメンバー関数を呼び出して、querydef がレコードを返すクエリに基づいているかどうかを判断します。

BOOL GetReturnsRecords();

戻り値

querydef がレコードを返すクエリに基づいている場合は 0 以外。それ以外の場合は 0。

解説

このメンバー関数は、SQL パススルー クエリにのみ使用されます。 SQL クエリの詳細については、「メンバーの実行」関数を参照してください。 SQL パススルー クエリの操作の詳細については、SetReturnsRecords メンバー関数を参照してください。

関連情報については、DAO ヘルプの「ReturnsRecords プロパティ」を参照してください。

CDaoQueryDef::GetSQL

このメンバー関数を呼び出して、querydef の基になっているクエリを定義する SQL ステートメントを取得します。

CString GetSQL();

戻り値

querydef の基になっているクエリを定義する SQL ステートメント。

解説

その後、キーワード (keyword)、テーブル名などの文字列を解析します。

関連情報については、DAO ヘルプの「SQL プロパティ」、「Microsoft Jet データベース エンジン SQL と ANSI SQL の比較」、「コード内の SQL を使用したデータベースのクエリ」に関するトピックを参照してください。

CDaoQueryDef::GetType

このメンバー関数を呼び出して、querydef のクエリの種類を決定します。

short GetType();

戻り値

querydef によって定義されたクエリの型。 値については、「解説」を参照してください。

解説

クエリの種類は、querydef を作成するとき、または既存の querydef の SetSQL メンバー関数を呼び出すときに、querydef の SQL 文字列で指定した内容によって設定されます。 この関数によって返されるクエリの種類には、次のいずれかの値を指定できます。

  • dbQSelect 選択

  • dbQAction 動作

  • dbQCrosstab クロス 集計

  • dbQDelete Del

  • dbQUpdate Update

  • dbQAppend 追加

  • dbQMakeTable Make-table

  • dbQDDL データ定義

  • dbQSQLPassThrough パススルー

  • dbQSetOperation 連合

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

Note

SQL パススルー クエリを作成するには、定数を dbSQLPassThrough 設定しないでください。 これは、querydef オブジェクトを作成して接続文字列を設定するときに、Microsoft Jet データベース エンジンによって自動的に設定されます。

SQL 文字列の詳細については、GetSQL を参照してください。 クエリの種類の詳細については、「実行」を参照してください

CDaoQueryDef::IsOpen

オブジェクトが現在開いているかどうかを判断するには、このメンバー関数を CDaoQueryDef 呼び出します。

BOOL IsOpen() const;

戻り値

オブジェクトが CDaoQueryDef 現在開いている場合は 0 以外、それ以外の場合は 0。

解説

クエリ定義は、Execute を呼び出したり CDaoRecordset オブジェクトを作成したりするために使用する前に、開いている状態である必要があります。 querydef をオープン状態に設定するには、Create (新しい querydef の場合) または Open (既存の querydef の場合) を呼び出します。

CDaoQueryDef::m_pDatabase

querydef オブジェクトに関連付けられている CDaoDatabase オブジェクトへのポインターを格納します。

解説

このポインターは、データベースに直接アクセスする必要がある場合に使用します。たとえば、データベースのコレクション内の他の querydef オブジェクトまたはレコードセット オブジェクトへのポインターを取得します。

CDaoQueryDef::m_pDAOQueryDef

基になる DAO querydef オブジェクトの OLE インターフェイスへのポインターを格納します。

解説

このポインターは、他のクラスとの完全性と一貫性を確保するために提供されます。 ただし、MFC は DAO クエリ定義を完全にカプセル化するので、必要な可能性はほとんどありません。 これを使用する場合は、注意深く行います。特に、何をしているかがわかっている場合を除き、ポインターの値を変更しないでください。

CDaoQueryDef::Open

このメンバー関数を呼び出して、以前にデータベースの QueryDefs コレクションに保存された querydef を開きます。

virtual void Open(LPCTSTR lpszName = NULL);

パラメーター

lpszName
開く保存済みの querydef の名前を含む文字列。 CString使用できます。

解説

querydef が開いたら、その Execute メンバー関数を呼び出すか、querydef を使用して CDaoRecordset オブジェクトを作成できます。

CDaoQueryDef::SetConnect

このメンバー関数を呼び出して、querydef オブジェクトの接続文字列を設定します。

void SetConnect(LPCTSTR lpszConnect);

パラメーター

lpszConnect
関連付けられた CDaoDatabase オブジェクトの接続文字列を含む文字列。

解説

接続文字列は、必要に応じて ODBC および特定の ISAM ドライバーに追加情報を渡すために使用されます。 Microsoft Jet (.MDB) データベース。

ヒント

ODBC テーブルを操作する場合は、それらを .MDB データベース。

ODBC データ ソースへの SQL パススルー クエリを表す querydef を実行する前に、接続文字列SetConnectを設定し、SetReturnsRecords を呼び出して、クエリがレコードを返すかどうかを指定します。

接続文字列の構造と接続文字列コンポーネントの例の詳細については、DAO ヘルプの「接続プロパティ」を参照してください。

CDaoQueryDef::SetName

一時的ではない querydef の名前を変更する場合は、このメンバー関数を呼び出します。

void SetName(LPCTSTR lpszName);

パラメーター

lpszName
関連付けられた CDaoDatabase オブジェクト内の非一時クエリの新しい名前を含む文字列。

解説

Querydef 名は、一意のユーザー定義名です。 querydef オブジェクトが QueryDefs コレクションに追加される前に呼び出 SetName すことができます。

CDaoQueryDef::SetODBCTimeout

ODBC データ ソースに対するクエリがタイムアウトするまでの時間制限を設定するには、このメンバー関数を呼び出します。

void SetODBCTimeout(short nODBCTimeout);

パラメーター

nODBCTimeout
クエリがタイムアウトするまでの秒数。

解説

このメンバー関数を使用すると、接続されたデータ ソースに対する後続の操作が "タイムアウト" するまでの既定の秒数をオーバーライドできます。ネットワーク アクセスの問題、過剰なクエリ処理時間などが原因で、操作がタイムアウトする可能性があります。 クエリのタイムアウト値を変更する場合は、この querydef を使用してクエリを実行する前に呼び出 SetODBCTimeout します。 (ODBC では接続が再利用されるため、タイムアウト値は同じ接続上のすべてのクライアントで同じです)。

クエリ タイムアウトの既定値は 60 秒です。

CDaoQueryDef::SetParamValue

このメンバー関数を呼び出して、実行時に querydef のパラメーターの値を設定します。

virtual void SetParamValue(
    LPCTSTR lpszName,
    const COleVariant& varValue);

virtual void SetParamValue(
    int nIndex,
    const COleVariant& varValue);

パラメーター

lpszName
値を設定するパラメーターの名前。

varValue
設定する値。「解説」を参照してください。

Nindex
querydef の Parameters コレクション内のパラメーターの序数位置。 この値は、GetParameterCount と GetParameterInfo呼び出しで取得できます。

解説

パラメーターは、querydef の SQL 文字列の一部として既に確立されている必要があります。 パラメーターには、名前またはコレクション内の序数の位置でアクセスできます。

オブジェクトとして設定する値を COleVariant 指定します。 オブジェクトで目的の値と型を設定する方法については、COleVariant クラスを参照してくださいCOleVariant

CDaoQueryDef::SetReturnsRecords

外部データベースへの SQL パススルー クエリを設定するプロセスの一環として、このメンバー関数を呼び出します。

void SetReturnsRecords(BOOL bReturnsRecords);

パラメーター

bReturnsRecords
外部データベースのクエリがレコードを返す場合は TRUE を渡します。それ以外の場合は FAL Standard Edition。

解説

このような場合は、querydef を作成し、他 CDaoQueryDef のメンバー関数を使用してそのプロパティを設定する必要があります。 外部データベースの詳細については、「SetConnect」を参照してください

CDaoQueryDef::SetSQL

このメンバー関数を呼び出して、querydef が実行する SQL ステートメントを設定します。

void SetSQL(LPCTSTR lpszSQL);

パラメーター

Lpszsql
実行に適した完全な SQL ステートメントを含む文字列。 この文字列の構文は、クエリの対象となる DBMS によって異なります。 Microsoft Jet データベース エンジンで使用される構文の詳細については、DAO ヘルプの「コードでの SQL ステートメントの作成」のトピックを参照してください。

解説

一般的な用途 SetSQL は、SQL パススルー クエリで使用する querydef オブジェクトを設定することです。 (ターゲット DBMS に対する SQL パススルー クエリの構文については、DBMS のドキュメントを参照してください)。

関連項目

CObject クラス
階層図
CDaoRecordset クラス
CDaoDatabase クラス
CDaoTableDef クラス
CDaoException クラス