次の方法で共有


CDaoWorkspace::CompactDatabase

更新 : 2007 年 11 月

指定された Microsoft Jet (.MDB) データベースを再構成します。

static void PASCAL CompactDatabase( 
   LPCTSTR lpszSrcName, 
   LPCTSTR lpszDestName, 
   LPCTSTR lpszLocale = dbLangGeneral, 
   int nOptions = 0  
);
static void PASCAL CompactDatabase( 
   LPCTSTR lpszSrcName, 
   LPCTSTR lpszDestName, 
   LPCTSTR lpszLocale, 
   int nOptions, 
   LPCTSTR lpszPassword  
);

パラメータ

  • lpszSrcName
    既存の閉じられているデータベース名。"C:\\MYDB.MDB" のようなフルパスとファイル名を指定できます。ファイル名に拡張子がある場合には、その拡張子を指定する必要があります。ネットワークが統一名前付け規約 (UNC) をサポートしているときは、"\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB.MDB" のように、ネットワーク パスも指定できます。"\" は C++ のエスケープ文字なので、パス文字列には 2 つの円記号が必要です。

  • lpszDestName
    作成する再構成後のデータベースのフルパス名。lpszSrcName と同じようにネットワーク パスも指定できます。lpszDestName には、lpszSrcName と同じデータベース ファイルは指定できません。

  • lpszPassword
    パスワードで保護されたデータベースを再構成するときに使用するパスワードです。パスワードをパラメータに取るバージョンの CompactDatabase を使用する場合には、すべてのパラメータを設定してください。また、これは接続パラメータなので、専用の形式 ";PWD=lpszPassword" を使用します。たとえば、;PWD="Happy" のように指定します。先頭のセミコロンは必須です。

  • lpszLocale
    lpszDestName の作成で、照合順序を指定するために使用される文字列式。既定値 dbLangGeneral (以下を参照) を受け入れてこの引数を省略すると、新しいデータベースのロケールは、元のデータベースと同じになります。次の値を使用できます。

    • dbLangGeneral   英語、ドイツ語、フランス語、ポルトガル語、イタリア語、現代スペイン語

    • dbLangArabic   アラビア語

    • dbLangCyrillic   ロシア語

    • dbLangCzech   チェコ語

    • dbLangDutch   オランダ語

    • dbLangGreek   ギリシャ語

    • dbLangHebrew   ヘブライ語

    • dbLangHungarian   ハンガリー語

    • dbLangIcelandic   アイスランド語

    • dbLangNordic   スカンジナビア語 (Microsoft Jet データベース エンジン バージョン 1.0 のみ)

    • dbLangNorwdan   ノルウェー語とデンマーク語

    • dbLangPolish   ポーランド語

    • dbLangSpanish   古スペイン語

    • dbLangSwedfin   スウェーデン語とフィンランド語

    • dbLangTurkish   トルコ語

  • nOptions
    lpszDestName で指定されるターゲット データベースの 1 つ以上のオプションを示します。既定値を受け入れて、この引数を省略すると、lpszDestName には lpszSrcName と同じ暗号化、同じバージョンが指定されます。dbEncrypt オプションまたは dbDecrypt オプションと、バージョン オプションの 1 つをビットごとの OR 演算子で組み合わせて指定できます。次の値が指定できます。この値は、データベースの形式を指定するもので、データベース エンジンのバージョンを指定するものではありません。

    • dbEncrypt   再構成で、データベースを暗号化します。

    • dbDecrypt   再構成で、データベースを暗号化しません。

    • dbVersion10   再構成で、Microsoft Jet データベース エンジン Version 1.0 を使用するデータベースを作成します。

    • dbVersion30   再構成で、Microsoft Jet データベース エンジン Version 1.1 を使用するデータベースを作成します。

    • dbVersion20   再構成で、Microsoft Jet データベース エンジン Version 2.0 を使用するデータベースを作成します。

    • dbVersion30   再構成で、Microsoft Jet データベース エンジン Version 3.0 を使用するデータベースを作成します。

    オプション引数に dbEncrypt または dbDecrypt を使用して、再構成するデータベースを暗号化するかどうかを指定できます。暗号化定数を省略するか、dbDecryptdbEncrypt の両方を指定すると、lpszDestName には lpszSrcName と同じ暗号化が指定されます。オプション引数のバージョン定数の 1 つを使用して、再構成されるデータベースのデータ形式のバージョンを指定できます。この定数は、lpszDestName のデータ形式にだけ影響します。バージョン定数は 1 つだけ指定できます。バージョン定数を省略すると、lpszDestName のバージョンは lpszSrcName と同じバージョンになります。lpszSrcName のバージョンと同じかそれ以降のバージョンにだけ lpszDestName を再構成できます。

    dsb6scf6.alert_caution(ja-jp,VS.90).gif注意 :

    データベースが暗号化されていない場合は、ユーザーとパスワードのセキュリティを実装しても、データベースを構成するバイナリ ディスク ファイルを直接読み取ることができます。

解説

データベースのデータを変更すると、データベース ファイルは断片化され、必要以上のディスク領域を使用するようになります。定期的にデータベースを再構成して、データベース ファイルをデフラグメント化することをお勧めします。再構成されたデータベースは、通常小さくなります。データベースをコピーし、再構成する間に、照合順、暗号化、データ形式のバージョンの変更を選択することもできます。

dsb6scf6.alert_caution(ja-jp,VS.90).gif注意 :

CompactDatabase メンバ関数は、Microsoft Access データベース全体をあるバージョンから他のバージョンにそっくり変換するわけではありません。データ形式だけが変換されます。フォームやレポートのような Microsoft Access で定義されたオブジェクトは変換されません。ただし、データは正しく変換されます。

dsb6scf6.alert_note(ja-jp,VS.90).gifヒント :

データベース ファイルをコピーするには、CompactDatabase も使用できます。

データベースの再構成の詳細については、DAO ヘルプの「CompactDatabase Method」を参照してください。

必要条件

ヘッダー : afxdao.h

参照

参照

CDaoWorkspace クラス

階層図

CDaoWorkspace::RepairDatabase

その他の技術情報

CDaoWorkspace のメンバ