シート セット データベースを作成/開く(SSO)

シート セット マネージャのオブジェクトを使用するには、AcSmSheetSetMgr オブジェクトと、1 つまたは複数の AcSmDatabase オブジェクト(DST ファイル)を使用する必要があります。

AcSmSheetSetMgr オブジェクトを作成した後に、CreateDatabase メソッドを使用して AcSmDatabase オブジェクトを作成できます。ファイル拡張子が DST のファイル名を指定します。あるいは、OpenDatabase メソッドを使用して、既存のデータベースを開くことができます。現在開かれているデータベースにアクセスすることもできます。GetDatabaseEnumerator メソッドを使用すると、開かれているデータベースのリストへのアクセスを提供する列挙型を取得することができます。開かれている特定のデータベースを取得するには、FindOpenDatabase メソッドを使用します。

データベースに変更を加えるには、LockDb メソッドを使用してロックする必要があります。行った変更を保存または元に戻すには、UnlockDb メソッドを使用します。UnLockDb には、この動作をコントロールするブール値の commit パラメータがあります。commit パラメータの値を true に設定した場合は、変更がファイルに書き出されます。commit パラメータに false を渡すと、ディスクからデータベースを再ロードすることによって、変更は元に戻されます。

注意: 変更をコミットせずにロック解除すると、データベースが再ロードされ、データベース内のすべてのオブジェクトのインスタンスがクリアされ、読み込まれたデータベースに基づいて新しいオブジェクトが作成されます。これは、データベースが再ロードされた場合、データベース内のオブジェクトへのすべてのポインタが無効になることを意味しています。ロック/ロック解除の境界を超えてデータベース内のオブジェクトにアクセスする必要があるときは、オブジェクトへの直接ポインタではなく、オブジェクト ID を保管しなければなりません。オブジェクト ID (IAcSmObjectId)は、シート セット データベース内のオブジェクトを安全に参照する手段を提供します。オブジェクトの GetObjectId メソッドを呼び出すことにより、データベース内のオブジェクトのオブジェクト ID を取得することができます。逆に、GetPeristentObject メソッドを使用して、ID からオブジェクトのインスタンスを取得することができます。