次の方法で共有


CompactDatabase メソッド (SQL Server Compact)

CompactDatabase メソッドは、SQL Server Compact 3.5 のローカル データベース内の無駄な領域を最適化し、再利用します。このメソッドを使用して、データベースの照合順序、暗号化、パスワードの各設定を変更することもできます。

注意

修復後のデータベースの接続文字列に明示的にパスワードを指定しない限り、修復前のデータベースが暗号化されているかどうかに関係なく、修復後のデータベースでは暗号化が解除されます。

構文

object.CompactDatabase(SourceConnection, DestConnection)

パラメータ

パラメータ 説明

SourceConnection

最適化する元のデータベースへの接続を指定する文字列値。SourceConnection に指定したデータベースが既に開いている場合は、エラーが発生します。

DestConnection

最適化によって作成されるデータベースへの接続を指定する文字列値。DestConnection に指定したデータベースが既に存在する場合、または同じ名前のファイルが既に存在する場合は、エラーが発生します。

HRESULT CompactDatabase(BSTR SourceConnection, BSTR DestConnection);

解説

SourceConnection パラメータおよび DestConnection パラメータには、最適化前と後で使用するデータベースのプロパティを指定します。次の表は、各パラメータに指定できる接続プロパティの一覧です。その他のプロパティはすべて無視されます。

プロパティ 説明

Provider

データ ソースへの接続に使用するプロバイダの名前を示します。このプロパティが指定されていない場合は、OLE DB Provider for SQL Server Compact 3.5 がプロバイダと見なされます。最適化前の文字列と最適化後の文字列でプロバイダの名前が異なる場合は、エラーが発生します。

Data Source

データベースの名前を示します。このプロパティは、最適化前の接続情報および最適化後の接続情報の両方で必要です。

Locale Identifier

新しいデータベースのロケール ID (LCID) を示します。省略すると、最適化後のデータベースの LCID は、システムのロケールと同じになります。

Locale Identifier には、データベース内の文字列比較の照合順序を指定します。

SSCE:Database Password

データベースがパスワードで保護されている場合は、パスワードを示します。最適化前のデータベースにパスワードが含まれる場合は、そのパスワードを指定する必要があります。DestConnection 文字列でこのパラメータを省略すると、新しいデータベースは暗号化されません。最適化後のデータベースからパスワードを削除する場合は、データベース パスワードを空の文字列に設定する必要があります。パスワードを空白にすると、データベースは暗号化されません。データベース パスワードの長さは最大 40 文字です。

SSCE:encryption mode

or

encryption mode

このプロパティの値は次のいずれかになります。

engine default

または

platform default

または

ppc2003 compatibility

既定値は platform default です。

SSCE:Encrypt Database

新しいデータベースを暗号化するかどうかを示します。DestConnection 文字列でこのパラメータを省略すると、新しいデータベースは、最適化前のデータベースと同じ暗号化設定になります。これは Boolean 型の値です。暗号化を行う場合は TRUE を、暗号化が不要な場合は FALSE を設定します。

ms174034.note(ja-jp,SQL.100).gifメモ:
SSCE:Database Password を指定すると、SSCE:Encrypt Database が指定されているかどうかに関係なく、データベースは常に暗号化されます。

SSCE:Temp File Directory

一時データベースの場所を指定します。DestConnection 文字列でこのパラメータを省略すると、現在のデータベースの場所が一時的なデータベースの場所として使用されます。

ssce: case sensitive

データベースで大文字と小文字が区別されるかどうかを表すブール値。大文字と小文字の区別を有効にする場合は true を設定し、無効にする場合は false を設定します。指定されていない場合、既定値は false です。

ms174034.note(ja-jp,SQL.100).gifメモ:
このプロパティは、SQL Server Compact 3.5 SP1 リリースで導入されました。詳細については、「照合順序の使用 (SQL Server Compact)」を参照してください。

ロケール ID 値がサポートされています。Locale Identifier の値には一意な LCID を使用します。一意な LCID 値の一覧については、「サポートされる照合順序 (SQL Server Compact)」を参照してください。データベースの作成先のデバイスでロケールがサポートされていることを確認する必要があります。

データベースの作成時に LCID 値を指定していない場合、SQL Server Compact 3.5 ではシステム ロケールを使用します。これは、以前のバージョンとは異なります。以前のバージョンでは、指定がない場合は常に英語ロケールを使用していました。

ms174034.note(ja-jp,SQL.100).gif重要 :
Compact 操作が完了する前にアプリケーションが異常終了した場合、システムに一時データベース ファイルが残されます。このファイルの名前は <filename>pack.sdf であり、手動で削除する必要があります。

参照

リファレンス

ErrorRecords プロパティ (SQL Server Compact)

その他のリソース

Engine オブジェクトのプログラミング (SQL Server Compact)

ヘルプおよび情報

サポートについて (SQL Server Compact 3.5 Service Pack 1)