OLE DB を使用したデータベース オブジェクトの管理 (SQL Server Compact)

MicrosoftSQL Server Compact 3.5 では、オブジェクトを変更する前にオブジェクトを排他的に開いておく必要があります。

オブジェクトの変更

ITableDefinition のメソッドはすべて、排他アクセス用にテーブルを開きます。他のメソッドでテーブルが既に開かれていると、ITableDefinition メソッドの呼び出しは失敗します。たとえば、テーブルのカーソルが開いている間に、ユーザーが ITableDefinition::AddColumn を使用して列を追加しようとすると、ロック エラーとなって列の定義変更は失敗します。アプリケーションを設計する際、特にトランザクションを使用する場合には、ロック問題を考慮する必要があります。

列の変更

列に関する一部の情報は、IAlterTable::AlterColumn を使用して変更することもできます。列には変更の可能性がある複数の項目が含まれているため、DBPROP_ALTERCOLUMN プロパティでは、DBCOLUMNDESC 構造体のうち変更可能な列を定義する部分が記述されます。ただし、プロバイダがプロパティの変更をサポートしていても、すべてのプロパティを変更できるとは限りません。次のプロパティは、OLE DB Provider for SQL Server Compact 3.5 を介して変更できます。

  • DBPROP_COL_DEFAULT

  • DBPROP_COL_SEED (ID 列の場合のみ)

  • DBPROP_COL_INCREMENT (ID 列の場合のみ)

インデックスと制約の変更

インデックスと制約を変更することもできます。詳細については、「OLE DB インデックス (SQL Server Compact)」および「OLE DB 制約 (SQL Server Compact)」を参照してください。