次の方法で共有


CDaoDatabase::Open

既存のデータベースを表す CDaoDatabase、新しく生成されたオブジェクトを初期化するには、このメンバー関数を呼び出す必要があります。

virtual void Open( 
   LPCTSTR lpszName, 
   BOOL bExclusive = FALSE, 
   BOOL bReadOnly = FALSE, 
   LPCTSTR lpszConnect = _T( 
   "" ) 
);

パラメーター

  • lpszName
    既存の Microsoft Jet (.mdb) データベース ファイルの名前である文字列式。ファイル名に拡張子がある場合、これは必須です。ネットワークが偶数 (UNC) 名前付け規則をサポートする場合は、"\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB.MDB" のようなネットワーク パスを指定できます。(double 円記号はリテラル文字列の中に「\」C++ のエスケープ文字に必要です)。

    考慮事項は lpszNameを使用するときに適用されます。、:

    • 既に他のユーザーによって排他的にアクセスするために開いているデータベース、MFC は型の例外 CDaoException参照します。ユーザーにデータベースが使用できないことを通知するために、例外トラップします。

    • 空の文字列 ("") で、lpszConnect は 「ODBC;。」、登録されたすべての ODBC データ ソース名を示すダイアログ ボックスが表示され、ユーザーがデータベースを選択できます。ODBC データ ソースへの直接接続の使用は避けてください; アタッチ テーブルを使用します。

    • 他に既存のデータベースを参照するか、有効な ODBC データ ソース名、MFC は CDaoException型の例外をスローします。

    [!メモ]

    DAO のエラー コードの詳細については、DAOERR.H ファイルを参照してください。関連情報は、DAO ヘルプ トピック「Trappable データ アクセス エラー」を参照してください。

  • bExclusive
    データベースが共有アクセス用に開く場合、データベースが排他 (共有なし) とアクセス FALSE 用に開く場合 [真] であるブール値。この引数を省略すると、データベースは共有アクセスできるように開かれます。

  • bReadOnly
    データベースを読み取り/書き込みアクセスのために開く場合、データベースの読み取り専用アクセスと FALSE 用に開く場合 [真] であるブール値。この引数を省略すると、データベースは読み取り/書き込みアクセスできるように開かれます。すべての依存レコードセットは、この属性を継承します。

  • lpszConnect
    文字列式は、データベースを開くために使用する。この文字列は、ODBC を接続する引数を構成します。元の文字列を指定するには、排他、読み取り専用引数を指定する必要があります。データベースが Microsoft Jet データベース (.mdb) の場合、この文字列が空です ("")。既定 _T— ("") アプリケーションの、Unicode または ANSI のビルド (の構文は移植性を提供します。

解説

[開く] は、基になる DAO のオブジェクトとデータベースを関連付けます。初期化されるまで構成要素のレコードセット、tabledef、querydef オブジェクトへのデータベース オブジェクトを使用できません。[開く] は、関連付けられたワークスペースのコレクションのデータベースにデータベース オブジェクトを追加します。

次のようにパラメーターを使用する:

  • Microsoft Jet (.mdb) データベースを開いた場合は、lpszName のパラメーターを使用し、lpszConnect のパラメーターとして空の文字列を渡すか、フォームのパスワードの文字列を渡します。; 「データベースにパスワード保護されて PWD=password」 (.mdb データベースのみ)。

  • ODBC データ ソースを開いた場合は、lpszConnect の有効な ODBC 接続文字列と lpszNameの空の文字列を渡します。

関連情報は、DAO ヘルプ トピック OpenDatabase メソッド「」を参照してください。

[!メモ]

パフォーマンスの向上のために外部データベースを、ISAM データベースおよび ODBC データ ソースがアクセスすると、お勧め Microsoft Jet ジェットのエンジンのデータベース (.mdb) にアタッチできますが、直接データ ソースに接続するのではなく、外部データベースのテーブルが。

これは、たとえば、DBMS のホストが利用できない場合がタイムアウト接続の試みにできます。接続の試みに失敗すると、[開く]CDaoExceptionは型の例外をスローします。

残りの注意が ODBC データベースにのみ適用されます:

データベースが ODBC データベースであり、接続を作成するに [開く] の呼び出しのパラメーターに十分な情報を含んでいる ODBC ドライバーは、ユーザーからの必要な情報を取得するためのダイアログ ボックスを開きます。**[開く]**を呼び出す場合は、接続文字列、lpszConnectは、プライベートに格納され、GetConnect のメンバー関数を呼び出すことによって使用できます。

望めば、ユーザーから情報を、パスワードなど取得するに [開く] を呼び出してし、を **[開く]**に渡される接続文字列への情報を追加する前に、独自のダイアログ ボックスを開くことができます。または渡す (おそらく Windows のレジストリに) 接続文字列を保存する可能性があるため、次に CDaoDatabase のオブジェクトのアプリケーションの呼び出し時 [開く] も再利用できます。

また、ログインの承認 ( CDaoDatabase の別のオブジェクトの各) の複数のレベルの接続文字列を使用して、他のデータベース固有の情報を持つことができます。

必要条件

Header: afxdao.h

参照

関連項目

CDaoDatabase クラス

階層図

CDatabase::CDatabase

CDatabase::Close