OLE DB データ ソース オブジェクト (SQL Server Compact)

OLE DB プログラミングでは、データ ソース オブジェクトがプロバイダーの基になるデータ ストアを表します。OLE DB プロバイダーに接続するために、コンシューマーは最初にデータ ソース オブジェクトのインスタンスを作成し、初期化する必要があります。

SQL Server Compact データ ソース オブジェクト

MicrosoftSQL Server Compact 3.5 では、OLE CoCreateInstance 関数を呼び出し、OLE DB Provider for SQL Server Compact 3.5 に対する CLSID (クラス識別子) の CLSID_SQLSERVERCE を渡すことにより、データ ソース オブジェクトが作成されます。SQL Server Compact 3.5 はインプロセス サーバーなので、SQL Server Compact 3.5 OLE DB オブジェクトのインスタンスを作成するには、実行可能なコンテキストを指定するために CLSCTX_INPROC_SERVER マクロを使用します。

SQL Server Compact 3.5 では、DBPROP_INIT_DATASOURCE プロパティのみを使用して、目的のデータ ソースを指定します。このプロパティには、開こうとしているデータベース ファイルへのフル パスが渡されます。このプロパティの設定後、コンシューマはデータ ソース オブジェクトを初期化します。これにより、コンシューマと SQL Server Compact 3.5 の間でデータを交換するために必要な環境が確立されます。データ ソース オブジェクトが初期化されたら、コンシューマはデータ ストアの自己記述情報を取得できます。ただし、この時点ではまだデータにアクセスできません。これで、データ ソース オブジェクトを使用して 1 つ以上のセッション オブジェクトを作成することができます。これらは、必要なトランザクション、コマンド、および行セットの作成に使用されます。

また、OLE DB Provider for SQL Server Compact 3.5 で新しいデータベースを作成できます。詳細については、「OLE DB を使用したデータベースの作成」を参照してください。

パスワードで保護されたデータベースもサポートされています。このセキュリティ機能が使用されている場合は、データ ソース オブジェクトを初期化するときにパスワードを渡す必要があります。詳細については、「OLE DB におけるパスワードで保護されたデータベースへのアクセス」を参照してください。

データ ソース オブジェクトの制限事項

OLE DB Provider for SQL Server Compact 3.5 のデータ ソース オブジェクトには、以下の制限事項があります。

  • OLE DB で定義されているカタログの概念は、SQL Server Compact 3.5 では使用できません。DBPROP_INIT_DATASOURCE プロパティによって使用するデータベースが定義され、OLE DB Provider for SQL Server Compact 3.5 はこのデータベースを現在のカタログとして扱います。

  • 現在のデータ ストアの変更はサポートされていません。データ ストアを変更したいクライアントは、データ ソース オブジェクトの初期化を解除し、データ ストア名を新しく設定して、データ ソース オブジェクトを再度初期化する必要があります。

プロバイダ固有のデータ ソースのプロパティ

SQL Server Compact 3.5 は、プロバイダ固有のプロパティ セット DBPROPSET_SSCE_DBINIT で以下のプロバイダ固有のプロパティをサポートしています。

プロパティ

定義

DBPROP_SSCE_AUTO_SHRINK_THRESHOLD

自動圧縮の開始前に許可されるデータベース ファイル内の空き領域の割合。この値を 100 にすると、自動圧縮が無効になります。指定されていない場合、既定値は 60 です。

DBPROP_SSCE_DBCASESENSITIVE

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

注意注意
このプロパティは、SQL Server Compact 3.5 SP1 リリースで導入されました。詳細については、「照合順序の使用 (SQL Server Compact)」を参照してください。

DBPROP_SSCE_DBPASSWORD

データベース パスワード (最大 40 文字)。指定しない場合、既定値では、パスワードが使用されません。データベースで暗号化を有効にする場合、このプロパティは必須です。パスワードを指定すると、データベースで暗号化が有効になります。詳細については、「OLE DB におけるパスワードで保護されたデータベースへのアクセス」を参照してください。

DBPROP_SSCE_DEFAULT_LOCK_ESCALATION

行からテーブルまたはページからテーブルへのエスカレートを試行する前にトランザクションが取得するロック数。指定されていない場合、既定値は 100 です。

DBPROP_SSCE_DEFAULT_LOCK_TIMEOUT

トランザクションがロックを待機する既定の間隔 (ミリ秒)。指定されない場合の既定値は、デスクトップ用が 5,000 ミリ秒、デバイス用が 2,000 ミリ秒です。

DBPROP_SSCE_ENCRYPTDATABASE

データベースを暗号化するかどうかを指定するブール値。暗号化を有効にする場合は true に設定し、無効にする場合は false に設定します。指定されていない場合、既定値は false です。暗号化を有効にする場合は、password プロパティでパスワードを指定する必要があります。パスワードを指定すると、このプロパティの設定値にかかわらず、暗号化が有効になります。

DBPROP_SSCE_ENCRYPTIONMODE

データベース ファイルをセキュリティで保護するために使用する暗号化の種類。暗号化モードの詳細については、「プロバイダ固有のプロパティ (OLE DB)」を参照してください。

DBPROP_SSCE_FLUSH_INTERVAL

コミットされたすべてのトランザクションをディスクにフラッシュする間隔を秒単位で指定します。指定されていない場合、既定値は 10 です。

DBPROP_SSCE_MAXBUFFERSIZE

データベースの最大サイズ (MB 単位)。指定されていない場合、既定値は 640 です。

DBPROP_SSCE_MAX_DATABASE_SIZE

データベースの最大サイズ (MB 単位)。指定されていない場合、既定値は 128 です。

DBPROP_SSCE_TEMPFILE_DIRECTORY

一時データベースの場所。指定されていない場合、既定では、データ ソース プロパティに指定されたデータベースが一時的な格納場所として使用されます。詳細については、「OLE DB を使用した一時データベースの場所の指定」および「一時データベース」を参照してください。

DBPROP_SSCE_TEMPFILE_MAX_SIZE

一時データベースの最大サイズ (MB 単位)。