CRecordset::Open

仮想BOOLオープン (UINTした nOpenType==NULL、DWORDdwOptions=なしAFX_DB_USE_DEFAULT_TYPE、LPCTSTRlpszSQL);
スロー ( CDBException、 CMemoryException );

戻り値

CRecordsetオブジェクトが正常に開かれた(と呼ばれる場合) cdatabase::openは 0 を返す場合それ以外の場合は 0。

パラメーター

した nOpenType

AFX_DB_USE_DEFAULT_TYPE既定値を受け入れるまたはenumOpenTypeから次の値のいずれかを使用します。 :

lpszSQL

次のいずれかを含む文字列へのポインター:

dwOptions

以下に示す値の組み合わせを指定することができますビットマスク。これらのいくつかは相互に排他的です。既定値はnoneです。

解説

レコード セットで定義されたクエリを実行するにはこのメンバー関数を呼び出す必要があります。Openを呼び出す前に、レコード セット オブジェクトを構築する必要があります。

このレコード セットのソースへの接続、データ レコード セットオープンを呼び出す前に構成方法に依存します。データ ソースに接続されていないレコード セット コンス トラクターにCDatabaseオブジェクトを渡す場合は、このメンバー関数GetDefaultConnectを使用して、データベース オブジェクトを開くしようとします。レコード セット コンス トラクターにNULLを渡す場合は、コンス トラクターはCDatabaseオブジェクトを構築し、データベース オブジェクトを接続しようとして開く。レコード セットと、これらのさまざまな状況下で接続を閉じるの詳細についてを閉じるを参照してください。

注特価;CRecordsetオブジェクトを通してデータ ソースへのアクセスは、常に共有されます。CDaoRecordsetクラスとは異なり、 CRecordsetオブジェクトのデータ ソースを排他アクセスで開くに使用することはできません。(&N)。

Openを呼び出すと、クエリは、通常、SQL選択ステートメントは、次の表の条件に基づいてレコードを選択します。

LpszSQL パラメーターの値 選択されたレコードによって決まります 例
NULL GetDefaultSQLによって返される文字列。
SQL テーブル名 DoFieldExchangeまたはDoBulkFieldExchangeテーブル リストのすべての列。
 「顧客」
定義済みクエリ (ストアド プロシージャ) 名 クエリを返すに定義されている列。
」{呼び出し OverDueAccts}"
選択列の一覧からテーブル リスト 指定されたテーブルの指定した列。
[CustId] CustName の顧客からの選択]

!警告特価;SQL 文字列に余分な空白を挿入しないでください注意してください。たとえば、かっこと呼び出しキーワード間にスペースを挿入する場合、MFC は SQL 文字列をテーブル名として誤って解釈し、スローされた例外の結果をSELECTステートメントに組み込みます。定義済みクエリが出力パラメーターを使用する場合、同様に、中かっこの間にスペースを挿入しないでください、'?' 記号。最後に、空白、かっこの前に、 CALLステートメントまたは選択キーワードの選択ステートメントの前に挿入する必要がありますないです。(&N)。

通常の手順は、 NULLをオープンに渡すことです。この例では、オープン GetDefaultSQLをが呼び出されます。CRecordsetの派生クラスを使用している場合は、 GetDefualtSQL ClassWizard で指定したテーブル名を提供します。LpszSQLパラメーターにその他の情報を代わりに指定することができます。

何があなたを渡す、オープン最終 SQL 文字列 (文字列を渡すlpszSQL文字列に追加 SQLは ORDER BY句があります)、クエリを構築し、クエリを実行します。Openを呼び出した後にgetsql 関数を呼び出すことによって作成された文字列を調べることができます。レコード セットが SQL ステートメントを構築し、レコードを選択する方法の詳細については、記事 レコード セット: レコード選択のしくみ (ODBC)でVisual の C++ プログラマのガイド。

レコード セット クラスのフィールド データ メンバーは、選択したデータの列にバインドされています。すべてのレコードが返された場合は、最初のレコードが現在のレコードになります。

フィルターや並べ替えなど、レコード セットのオプションを設定する場合これらは、レコード セット オブジェクトを構築した後、 Openを呼び出す前に指定します。レコード セットが既に開かれていた後レコード セット内のレコードを更新する場合は、再クエリを呼び出す。

その他の例を含む詳細についてを参照してください レコード セット (ODBC)、 レコード セット: レコード選択のしくみ (ODBC)、および レコード セット: 作成と破棄 (ODBC) Visual の C++ プログラマのガイドの。

例

別のフォーム、 Openの呼び出しのコード例を次に示しますを表示します。

・ rs は、CRecordset または//CRecordset の派生オブジェクト//既定の SQL ステートメントを使用してオープンの rs・ ブックマークを実装・ オフ//自動ダーティ フィールド チェックrs。開く (CRecordset::snapshot、NULL、特価;CRecordset::useBookmarks |CRecordset::noDirtyFieldCheck);//完全な SELECT ステートメントを渡す//とダイナセットとして開くrs。開く (crecordset::dynaset、_T (」select L_Name お客様から「));//すべての既定値を受け入れるrs。開く)(&N)

CRecordset の概要|nbsp;クラス メンバー |階層図(&N)

参照特価;CRecordset::CRecordset、 CRecordset::Close、 CRecordset::GetDefaultSQL、 CRecordset::GetSQL、 CRecordset::m_strFilter、 CRecordset::m_strSort、 :requery(&N)

Index