CDatabase::Open
CDatabase、新しく生成されたオブジェクトを初期化するには、このメンバー関数を呼び出します。
virtual BOOL Open(
LPCTSTR lpszDSN,
BOOL bExclusive = FALSE,
BOOL bReadOnly = FALSE,
LPCTSTR lpszConnect = _T("ODBC;"),
BOOL bUseCursorLib = TRUE
);
パラメーター
lpszDSN
データ ソース名— ODBC データ ソース アドミニストレーターのプログラムで ODBC に登録されている名前) を指定します。DSN の値が lpszConnect フォーム (「」) で DSN=data-source指定すると、lpszDSNで再指定しないでください。この場合、lpszDSN は null必要があります。は、ユーザーがデータ ソースを選択できるデータ ソース]ダイアログ ボックスをユーザーに表示する場合、null を渡すことができます。詳細については、"解説"を参照してください。bExclusive
クラス ライブラリのこのバージョンではサポートされていません。現在、アサーションは **[真]**このパラメーターがである場合に失敗します。データ ソースは、共有として常に開きます (含まれません)。bReadOnly
読み取り専用であり、データ ソースに更新を禁止するように接続を使用する**[真]**。すべての依存レコードセットは、この属性を継承します。既定値は FALSEです。lpszConnect
接続文字列を指定します。接続文字列は、データ ソースが 1 を要求した場合、データ ソース名、データ ソースで、ユーザー認証の文字列 (有効なユーザー id、パスワード) などを含む、この情報を連結します。すべての接続文字列の「ODBC によって前に付ける必要があります; 」 (大文字でも小文字でもかまいません)。「ODBC; ODBC データ ソースに接続があることを示すために」文字列を使用しています; これは上向での互換性のためクラス ライブラリの将来のバージョンでは ODBC データ ソースをサポートする場合に必要です。bUseCursorLib
ODBC カーソル ライブラリ DLL に読み込まれる場合**[真]**。カーソル ライブラリは (ドライバーがパラメーターをサポートする場合) 効果的にダイナセットを使用しない基になる ODBC ドライバーの機能を、マスク。カーソル ライブラリを読み込むようにサポートされているカーソルは静的なスナップショット、および前方向カーソルです。既定値は TRUE です。派生に CRecordset からレコードセット オブジェクトを直接作成する場合は、カーソル ライブラリを読み込むことはできません。
戻り値
接続が正常に行われた場合は、; はダイアログ ボックスを名前付き場合より多くの接続情報を呼び出す場合は、ユーザーが[キャンセル]をクリックした場合は 0。それ以外の場合、フレームワークは例外をスローします。
解説
データベース オブジェクトは、レコードセット オブジェクトの構築に、使用する前に初期化する必要があります。
[!メモ]
OpenEx のメンバー関数を呼び出すと、データ ソースに接続し、データベース オブジェクトを初期化する場合に適しています。
接続を作成するに [開く] の呼び出しのパラメーターに十分な情報を含んでいる ODBC ドライバーは、ユーザーからの必要な情報を取得するためのダイアログ ボックスを開きます。**[開く]**を呼び出す場合は、接続文字列、lpszConnectは CDatabase のオブジェクトで、プライベートに格納され、GetConnect のメンバー関数を呼び出すことによって使用できます。
望めば、ユーザーから情報を、パスワードなど取得するに [開く] を呼び出してし、を **[開く]**に渡される接続文字列への情報を追加する前に、独自のダイアログ ボックスを開くことができます。またはに渡すために次 CDatabase のオブジェクトのアプリケーションの呼び出しも再利用できます [開く] 時接続文字列を保存する場合があります。
また、ログインの承認 ( CDatabase の別のオブジェクトの各) の複数のレベルの接続文字列を使用する場合は、データ ソース固有の情報を持つことができます。接続文字列に関する詳細については、Windows SDKの Chapter 5 "を参照してください。
これは、たとえば、DBMS のホストが利用できない場合がタイムアウト接続の試みにできます。接続の試みに失敗すると、[開く] は CDBExceptionをスローします。
使用例
// m_dbCust is a CDatabase object embedded in a CDocument class
if (bDefault)
{
// Connect the object to a data source (no password)
// the ODBC connection dialog box will always remain hidden
m_dbCust.Open(_T("MFC_ODBCTest"), FALSE, FALSE, _T("ODBC;UID=JOES"));
}
else
{
// ...Or, query the user for all connection information
m_dbCust.Open(NULL);
}
必要条件
Header: afxdb.h