OLE DB データ ソース オブジェクト (SQL Server Compact)
OLE DB プログラミングでは、データ ソース オブジェクトがプロバイダの基になるデータ ストアを表します。OLE DB プロバイダに接続するために、コンシューマは最初にデータ ソース オブジェクトのインスタンスを作成し、初期化する必要があります。
SQL Server Compact データ ソース オブジェクト
Microsoft SQL Server Compact 3.5 (SQL 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 単位)。 |