eXTreme クラスのクイック・リファレンス
この章は、以下の Caché eXTreme API を理解するために最も重要なクラスのクイック・リファレンスです。
-
InterSystems.XEP ネームスペースには、"eXTreme Event Persistence の使用法" に記載されているパブリック API が含まれています。
これは、これらの API の最終的なリファレンスではありません。最も完全な最新の情報は、<install-dir>/dev/dotnet/help/CacheExtreme.chm にあるヘルプ・ファイルを参照してください。
XEP クイック・リファレンス
このセクションは、XEP API (eXTreme Event Persistence — ネームスペース InterSystems.XEP) のリファレンスです。この API の使用法の詳細は、"eXTreme Event Persistence の使用法" を参照してください。これには、以下のクラスおよびインタフェースが含まれています。
-
クラス PersisterFactory — EventPersister オブジェクトを作成するために必要なファクトリ・メソッドを提供します。
-
クラス EventPersister — XEP データベース接続をカプセル化します。また、XEP オプションの設定、XEP 接続の確立または既存の接続オブジェクトの取得、スキーマのインポート、XEP イベント・オブジェクトの作成、サーバ上の Caché 関数およびメソッドの呼び出し、トランザクションの制御を行うメソッドを提供します。
-
クラス Event — XEP 永続イベントへの参照をカプセル化します。また、イベントの格納または削除、クエリの作成、インデックス作成の開始または停止を行うメソッドを提供します。
-
クラス EventQuery<> — 更新または削除するためにデータベースから特定のタイプの個別のイベントを取得するクエリをカプセル化します。
-
インタフェース InterfaceResolver — プロパティがインタフェースとして宣言された場合、フラット・スキーマのインポート中にプロパティの実際のタイプを解決します。
-
クラス XEPException — ほとんどの XEP メソッドによってスローされる例外です。
XEP メソッドのリスト
このリファレンスでは、以下の XEP API のクラスおよびメソッドを説明します。
-
CreatePersister() — 新しい EventPersister オブジェクトを作成します。
-
CallBytesClassMethod() — Caché クラス・メソッドを呼び出し、文字列を byte[] として返します。
-
CallBytesFunction() — Caché 関数を呼び出し、文字列を byte[] として返します。
-
CallClassMethod() — Caché クラス・メソッドを呼び出します。
-
CallFunction() — Caché 関数を呼び出します。
-
CallListClassMethod() — Caché クラス・メソッドを呼び出し、文字列を ValueList として返します。
-
CallListFunction() — Caché 関数を呼び出し、文字列を ValueList として返します。
-
CallProcedure() — Caché プロシージャを呼び出します。
-
CallVoidClassMethod() — 返り値のない Caché クラス・メソッドを呼び出します。
-
Close() — このインスタンスで保持されているすべてのリソースを解放します。
-
Commit() — 1 レベルのトランザクションをコミットします。
-
Connect() — 指定された引数を使用して Caché に接続します。
-
DeleteClass() — Caché クラスを削除します。
-
DeleteExtent() — 指定されたエクステントのすべてのオブジェクトを削除します。
-
GetConnection() — 基礎となる eXTreme 接続を返します。
-
GetAdoNetConnection() — .NET DbConnection オブジェクトを返します。
-
GetEvent() — 指定されたクラス名に対応するイベント・オブジェクトを返します。
-
GetInterfaceResolver() — 現在指定されている InterfaceResolver のインスタンスを返します。
-
GetTransactionLevel() — 現在のトランザクション・レベル (トランザクション内でない場合は 0) を返します。
-
ImportSchema() — フラット・スキーマをインポートします。
-
ImportSchemaFull() — フル・スキーマをインポートします。
-
Rollback() — 指定された数のトランザクション・レベルをロールバックするか、レベルが指定されていない場合、すべてのレベルのトランザクションをロールバックします。
-
SetInterfaceResolver() — 使用する InterfaceResolver オブジェクトを指定します。
-
StartTransaction() — トランザクションを開始します (このトランザクションは入れ子になっている場合あり)。
-
Close() — このインスタンスで保持されているすべてのリソースを解放します。
-
CreateQuery() — EventQuery<> インスタンスを作成します。
-
DeleteObject() — データベース ID または IdKey を指定されたイベントを削除します。
-
GetObject() — データベース ID または IdKey を指定されたイベントを返します。
-
IsEvent() — オブジェクト (またはクラス) が XEP の意味でイベントかどうかを確認します。
-
StartIndexing() — 基本クラスのインデックス作成を開始します。
-
StopIndexing() — 基本クラスのインデックス作成を停止します。
-
Store() — 指定されたオブジェクトまたはオブジェクトの配列を格納します。
-
UpdateObject() — データベース ID または IdKey を指定されたイベントを更新します。
-
WaitForIndexing() — このクラスの非同期インデックス作成が完了するまで待機します。
-
AddParameter() — このクエリのパラメータを結合します。
-
Close() — このインスタンスで保持されているすべてのリソースを解放します。
-
DeleteCurrent() — GetNext() によって最後にフェッチされたイベントを削除します。
-
Execute() — この XEP クエリを実行します。
-
GetAll() — 結果セット内のすべてのイベントを配列としてフェッチします。
-
GetFetchLevel() — 現在のフェッチ・レベルを返します。
-
GetNext() — 結果セット内の次のイベントをフェッチします。
-
SetFetchLevel() — 返されるデータの量を制御します。
-
UpdateCurrent() — GetNext() によって最後にフェッチされたイベントを更新します。
-
GetImplementationClass() — プロパティがインタフェースとして宣言された場合、このメソッドの実装を使用して、スキーマのインポート中に実際のプロパティ・タイプを解決できます。
クラス PersisterFactory
クラス InterSystems.XEP.PersisterFactory は新しい EventPersister オブジェクトを作成します。
PersisterFactory の新しいインスタンスを作成します。
PersisterFactory()
PersisterFactory.CreatePersister() は EventPersister のインスタンスを返します。
static EventPersister CreatePersister()
関連項目 :
クラス EventPersister
クラス InterSystems.XEP.EventPersister は、XEP モジュールの主なエントリ・ポイントです。このクラスは、XEP オプションの設定、XEP 接続の確立、スキーマのインポート、および XEP イベント・オブジェクトの作成を行うために使用できるメソッドを提供します。また、トランザクションを制御するメソッドおよびその他のタスクを実行するメソッドも提供します。
EventPersister.CallBytesClassMethod() — ObjectScript クラス・メソッドを呼び出し、int、long、double、または byte[] 型である Object を返します。
このメソッドは、CallClassMethod() と同一ですが、それが文字列値を string ではなく byte[] のインスタンスとして返す点が異なります。
Object CallBytesClassMethod(string className, string methodName, params Object[] args)
パラメータ :
-
className — 呼び出されるメソッドが属する Caché クラスの完全修飾名。
-
methodName — Caché クラス・メソッドの名前。
-
args — クラス・メソッドに渡す 0 個以上の引数のリスト。
引数は、int、long、double、String、byte[]、ValueList、または Globals.ByteArrayRegion 型のいずれかになります。末尾の引数は、省略できます。すべての引数の数よりも少ない数の引数が渡されるか、末尾の引数に対して null が渡されることでそれらの引数には既定の値が使用されるようになります。非 null 引数が null 引数の右側に渡されると例外がスローされます。
EventPersister.CallBytesFunction() は、ObjectScript 関数を呼び出して ("Caché ObjectScript の使用法" の “ユーザ定義コード” を参照)、int、long、double、または byte[] 型である Object を返します。
このメソッドは、CallFunction() と同一ですが、それが文字列値を String ではなく byte[] のインスタンスとして返す点が異なります。
Object CallBytesFunction(string functionName, string routineName, params Object[] args)
パラメータ :
-
functionName — 関数の名前。
-
routineName — 関数を含むルーチンの名前。
-
args — 関数に渡す 0 個以上の引数のリスト。
引数は、int、long、double、String、byte[]、ValueList、または Globals.ByteArrayRegion 型のいずれかになります。末尾の引数は、省略できます。すべての引数の数よりも少ない数の引数が渡されるか、末尾の引数に対して null が渡されることでそれらの引数には既定の値が使用されるようになります。非 null 引数が null 引数の右側に渡されると例外がスローされます。
EventPersister.CallClassMethod() — ObjectScript クラス・メソッドを呼び出し、int、long、double、または String 型である Object を返します。値を返さないメソッドを呼び出すには CallVoidClassMethod()、文字列値を byte[] として返すには CallBytesClassMethod()、文字列値を ValueList として返すにはCallListClassMethod() を使用します。
Object CallClassMethod(string className, string methodName, params Object[] args)
パラメータ :
-
className — 呼び出されるメソッドが属する Caché クラスの完全修飾名。
-
methodName — Caché クラス・メソッドの名前。
-
args — クラス・メソッドに渡す 0 個以上の引数のリスト。
引数は、int、long、double、String、byte[]、ValueList、または Globals.ByteArrayRegion 型のいずれかになります。末尾の引数は、省略できます。すべての引数の数よりも少ない数の引数が渡されるか、末尾の引数に対して null が渡されることでそれらの引数には既定の値が使用されるようになります。非 null 引数が null 引数の右側に渡されると例外がスローされます。
EventPersister.CallFunction() — ObjectScript 関数を呼び出して ("Caché ObjectScript の使用法" の “ユーザ定義コード” を参照)、int、long、double、または String 型である Object を返します。文字列値を byte[] として返すには CallBytesFunction()、文字列値を ValueList として返すには CallListFunction() を使用します。
Object CallFunction(string functionName, string routineName, params Object[] args)
パラメータ :
-
functionName — 関数の名前。
-
routineName — 関数を含むルーチンの名前。
-
args — 関数に渡す 0 個以上の引数のリスト。
引数は、int、long、double、String、byte[]、ValueList、または Globals.ByteArrayRegion 型のいずれかになります。末尾の引数は、省略できます。すべての引数の数よりも少ない数の引数が渡されるか、末尾の引数に対して null が渡されることでそれらの引数には既定の値が使用されるようになります。非 null 引数が null 引数の右側に渡されると例外がスローされます。
EventPersister.CallListClassMethod() — ObjectScript クラス・メソッドを呼び出し、int、long、double、または ValueList 型である Object を返します。
このメソッドは、CallClassMethod() と同一ですが、それが文字列値を String ではなく ValueList のインスタンスとして返す点が異なります。
Object CallListClassMethod(string className, string methodName, params Object[] args)
返り値が文字列であるものの有効な ValueList 形式ではない場合、例外をスローします。
パラメータ :
-
className — 呼び出されるメソッドが属する Caché クラスの完全修飾名。
-
methodName — Caché クラス・メソッドの名前。
-
args — クラス・メソッドに渡す 0 個以上の引数のリスト。
引数は、int、long、double、String、byte[]、ValueList、または Globals.ByteArrayRegion 型のいずれかになります。末尾の引数は、省略できます。すべての引数の数よりも少ない数の引数が渡されるか、末尾の引数に対して null が渡されることでそれらの引数には既定の値が使用されるようになります。非 null 引数が null 引数の右側に渡されると例外がスローされます。
EventPersister.CallListFunction() は、ObjectScript 関数を呼び出して ("Caché ObjectScript の使用法" の “ユーザ定義コード” を参照)、int、long、double、または ValueList 型である Object を返します。
このメソッドは、CallFunction() と同一ですが、それが文字列値を String ではなく ValueList のインスタンスとして返す点が異なります。
Object CallListFunction(string functionName, string routineName, params Object[] args)
返り値が文字列であるものの有効な ValueList 形式ではない場合、例外をスローします。
パラメータ :
-
functionName — 関数の名前。
-
routineName — 関数を含むルーチンの名前。
-
args — 関数に渡す 0 個以上の引数のリスト。
引数は、int、long、double、String、byte[]、ValueList、または Globals.ByteArrayRegion 型のいずれかになります。末尾の引数は、省略できます。すべての引数の数よりも少ない数の引数が渡されるか、末尾の引数に対して null が渡されることでそれらの引数には既定の値が使用されるようになります。非 null 引数が null 引数の右側に渡されると例外がスローされます。
EventPersister.CallProcedure() は、ObjectScript プロシージャを呼び出します ("Caché ObjectScript の使用法" の “ユーザ定義コード” を参照してください)。
void CallProcedure(string procedureName, string routineName, params Object[] args)
パラメータ :
-
procedureName — プロシージャの名前。
-
routineName — プロシージャを含むルーチンの名前。
-
args — プロシージャに渡す 0 個以上の引数のリスト。
引数は、int、long、double、String、byte[]、ValueList、または Globals.ByteArrayRegion 型のいずれかになります。末尾の引数は、省略できます。すべての引数の数よりも少ない数の引数が渡されるか、末尾の引数に対して null が渡されることでそれらの引数には既定の値が使用されるようになります。非 null 引数が null 引数の右側に渡されると例外がスローされます。
EventPersister.CallVoidClassMethod() — 返り値のない ObjectScript クラス・メソッドを呼び出し、0 個以上の引数を渡します。このメソッドは、呼び出し側で返り値を必要としない場合に、任意の Caché クラス・メソッド (それが通常、値を返すかどうかにかかわらず) を呼び出すために使用できます。値を返すメソッドを呼び出すには、CallClassMethod() を使用します。
void CallVoidClassMethod(string className, string methodName, params Object[] args)
パラメータ :
-
className — f呼び出されるメソッドが属する Caché クラスの完全修飾名。
-
methodName — Caché クラス・メソッドの名前。
-
args — クラス・メソッドに渡す 0 個以上の引数のリスト。
-
引数は、String、int、long、double、byte[]、または Globals.ByteArrayRegion 型のいずれかになります。末尾の引数は、省略できます。すべての引数の数よりも少ない数の引数が渡されるか、末尾の引数に対して null が渡されることでそれらの引数には既定の値が使用されるようになります。非 null 引数が null 引数の右側に渡されると例外がスローされます。
EventPersister.Close() は、このインスタンスで保持されているすべてのリソースを解放します。
void Close()
EventPersister のインスタンスが範囲外になる前に、そのインスタンスで必ず Close() を呼び出すことが重要です。それを閉じないと、深刻なメモリ・リークが発生することがあります。それは、.NET ガーベッジ・コレクションでは、基盤となるネイティブ・コードによって割り当てられたリソースを解放できないためです。
EventPersister.Commit() は、1 レベルのトランザクションをコミットします。
void Commit()
EventPersister.Connect() は、指定されている引数に応じて eXTreme 接続または TCP/IP 接続のいずれかを使用して Caché に接続します。namespace、username、および password 引数のみが指定されている場合、プロセス内 eXTreme 接続が確立されます。host および port も指定されている場合、TCP/IP 接続が確立されます。
void Connect(string nmspace, string username, string password)
void Connect(string host, int port, string nmspace, string username, string password)
パラメータ :
-
nmspace — アクセス先のネームスペース。
-
username — この接続のユーザ名。
-
password — この接続のパスワード。
-
host — TCP/IP 接続のホスト・アドレス。
-
port — TCP/IP 接続のポート番号。
関連項目 :
EventPersister.DeleteClass() Caché クラス定義を削除します。エクステントに関連付けられたオブジェクトは削除しません (オブジェクトは複数のエクステントに属することができるため)。また、依存関係 (内部クラス、埋め込みクラスなど) も削除しません。
void DeleteClass(string className)
パラメータ :
-
className — 削除されるクラスの名前。
指定されたクラスが存在しない場合、呼び出しは、通知なしで失敗します (エラーはスローされません)。
関連項目 :
"格納されたイベントへのアクセス" の “テスト・データの削除”
EventPersister.DeleteExtent() は、.NET イベントに関連付けられたエクステント定義を削除しますが、関連付けられているデータは破棄しません (オブジェクトは、複数のエクステントに属することができるため)。エクステントの管理の詳細は、"Caché オブジェクトの使用法" の “エクステント” を参照してください。
void DeleteExtent(string className)
-
className — エクステントの名前。
このメソッドを、すべてのエクステント・データをエクステント定義と共に破棄する非推奨の Event.DeleteExtent() と混同しないでください。
関連項目 :
"格納されたイベントへのアクセス" の “テスト・データの削除”
EventPersister.GetAdoNetConnection() EventPersister 接続の基礎となる .NET DbConnection オブジェクトを返します。
System.Data.Common.DbConnection GetAdoNetConnection()
関連項目 :
EventPersister.GetConnection() — EventPersister eXTreme 接続の基礎となる Intersystems.Globals.Connection のインスタンスを返します。EventPersister が TCP/IP 接続を持っている場合は、例外をスローします。
Intersystems.Globals.Connection\1\2\3
関連項目 :
EventPersister.GetEvent() は、指定されたクラス名に対応する Event オブジェクトを返し、オプションで、使用するインデックス作成モードを指定します。
Event GetEvent(string className)
Event GetEvent(string className, int indexMode)
パラメータ :
-
className — 返されるオブジェクトのクラス名。
-
indexMode — 使用するインデックス作成モード。
以下の indexMode オプションを使用できます。
-
Event.INDEX_MODE_ASYNC_ON — 非同期のインデックス作成を可能にします。これは、indexMode パラメータが指定されていない場合の既定の設定です。
-
Event.INDEX_MODE_ASYNC_OFF — StartIndexing() メソッドが呼び出されない限り、インデックス作成は実行されません。
-
Event.INDEX_MODE_SYNC — インデックス作成は、エクステントが変更されるたびに実行されます。これは多数のトランザクションの場合は非効率的になる可能性があります。クラスにユーザ割り当て IdKey がある場合は、このインデックス・モードを指定する必要があります。
Event の同じインスタンスを使用して、1 つのクラスのすべてのインスタンスを格納または取得できるため、1 つのプロセスで GetEvent() メソッドを呼び出す必要があるのはクラスごとに 1 回のみです。単一クラスに対する複数の Event オブジェクトのインスタンス化は避けてください。パフォーマンスに影響を及ぼしかねず、メモリ・リークの原因となることがあります。
関連項目 :
EventPersister.GetInterfaceResolver() — ImportSchema()によって使用されるようになる InterfaceResolver の現在設定されているインスタンスを返します (“InterfaceResolver の実装” を参照してください)。設定されているインスタンスがない場合、null を返します。
InterfaceResolver GetInterfaceResolver()
関連項目 :
EventPersister.GetTransactionLevel() は、現在のトランザクション・レベル (トランザクション内でない場合は 0) を返します。
int GetTransactionLevel()
EventPersister.ImportSchema() は、シリアル化オブジェクトとしてすべての参照オブジェクトを埋め込むフラット・スキーマ (“スキーマ・インポート・モデル” を参照) を作成します。このメソッドは、クラスで宣言された各イベントのスキーマまたは指定されている .dll ファイル (依存関係を含む) をインポートし、インポートされたイベントのクラス名の配列を返します。
string[] ImportSchema(string classOrDLLName)
string[] ImportSchema(string[] classes)
パラメータ :
-
classes — インポートされるクラスの名前を含む配列。
-
classOrDLLName — クラス名またはインポートされるクラスを含む .dll ファイルの名前。.dll ファイルが指定される場合、ファイル内のすべてのクラスがインポートされます。
引数がクラス名である場合、対応するクラスおよびすべての依存関係がインポートされます。引数が .dll ファイルである場合、ファイル内のすべてのクラスおよびすべての依存関係がインポートされます。そのようなスキーマが既に存在していて、それが .NET スキーマと同期していると思われる場合、インポートはスキップされます。スキーマが既に存在しているが、別なものと思われる場合は、データがあるか調べるためのチェックが実行されます。データがない場合、新しいスキーマが生成されます。既存のデータがある場合、例外がスローされます。
関連項目 :
EventPersisterImportSchemaFull() — ソース・クラスのオブジェクト階層を保持するフル・スキーマ (“スキーマ・インポート・モデル” を参照) を作成します。このメソッドは、クラスで宣言された各イベントのスキーマまたは指定されている .dll ファイル (依存関係を含む) をインポートし、インポートされたイベントのクラス名の配列を返します。
string[] ImportSchemaFull(string classOrDLLName)
string[] ImportSchemaFull(string[] classes)
パラメータ :
-
classes — インポートされるクラスの名前を含む配列。
-
classOrDLLName — クラス名またはインポートされるクラスを含む .dll ファイルの名前。.dll ファイルが指定される場合、ファイル内のすべてのクラスがインポートされます。
引数がクラス名である場合、対応するクラスおよびすべての依存関係がインポートされます。引数が .dll ファイルである場合、ファイル内のすべてのクラスおよびすべての依存関係がインポートされます。そのようなスキーマが既に存在していて、それが .NET スキーマと同期していると思われる場合、インポートはスキップされます。スキーマが既に存在しているが、別なものと思われる場合は、データがあるか調べるためのチェックが実行されます。データがない場合、新しいスキーマが生成されます。既存のデータがある場合、例外がスローされます。
関連項目 :
EventPersister.Rollback() は、指定された数のレベルのトランザクションをロールバックします。ここで、level は正の整数です。レベルが指定されていない場合、すべてのレベルのトランザクションをロールバックします。
void Rollback()
void Rollback(int level)
パラメータ :
-
level — ロールバックするレベルの数 (オプション)。
このメソッドは、level が 0 未満の場合何もせず、level が最初のトランザクション・レベルより大きい場合、トランザクション・レベルが 0 に到達するとロールバックを停止します。
EventPersisterSetInterfaceResolver() — ImportSchema() によって使用される InterfaceResolver のインスタンスを設定します (“InterfaceResolver の実装” を参照してください)。この EventPersiser によって作成される Event のすべてのインスタンスは、指定された InterfaceResolver (このメソッドが呼び出されない場合は既定で null になる) を共有します。
void SetInterfaceResolver(InterfaceResolver interfaceResolver)
パラメータ :
-
interfaceResolver — インタフェースとして宣言されるプロパティの実際のタイプを決定するために ImportSchema() によって使用される InterfaceResolver の実装。この引数は、null にすることができます。
関連項目 :
EventPersister.StartTransaction() は、トランザクション (入れ子になったトランザクションの場合あり) を開始します。
void StartTransaction()
クラス Event
クラス InterSystems.XEP.Event は、XEP イベント (イベントの格納、クエリの作成、インデックスの作成他) を処理するメソッドを提供します。これは EventPersister.GetEvent() メソッドにより作成されます。
Event.Close() は、このインスタンスで保持されているすべてのリソースを解放します。
void Close()
Event のインスタンスが範囲外になる前に、そのインスタンスで必ず Close() を呼び出すことが重要です。それを閉じないと、深刻なメモリ・リークが発生することがあります。それは、.NET ガーベッジ・コレクションでは、基盤となるネイティブ・コードによって割り当てられたリソースを解放できないためです。
Event.CreateQuery() は、SQL クエリのテキストを含む String 引数を取り、EventQuery<T> のインスタンスを返します。パラメータ T は、親 Event のターゲット・クラスです。
EventQuery<T> CreateQuery(string sqlText)
パラメータ :
-
sqlText — この SQL クエリのテキスト。
関連項目 :
Event.DeleteObject() は、データベース・オブジェクト ID または IdKey によって特定されたイベントを削除します。
void DeleteObject(long id)
void DeleteObject(object[] idkeys)
パラメータ :
-
id — データベース・オブジェクト ID
-
idkeys — IdKey を構成するオブジェクトの配列 (“IdKey の使用法” を参照してください)。基礎となるクラスに IdKey がないか、提供されたキーのいずれかが null であるか無効なタイプである場合は XEPException がスローされます。
関連項目 :
Event.GetObject() データベース・オブジェクト ID または IdKey によって特定されたイベントをフェッチします。指定したオブジェクトが存在しない場合、null を返します。
object GetObject(long id)
object GetObject(object[] idkeys)
パラメータ :
-
id — データベース・オブジェクト ID
-
idkeys — IdKey を構成するオブジェクトの配列 (“IdKey の使用法” を参照してください)。基礎となるクラスに IdKey がないか、提供されたキーのいずれかが null であるか無効なタイプである場合は XEPException がスローされます。
関連項目 :
Event.IsEvent() は、オブジェクト (またはクラス) が XEP の意味でイベントでない場合、XEPException をスローします (“インポートされるクラスの要件” を参照してください)。例外メッセージにより、このオブジェクトが XEP イベントでない理由が説明されます。
static void IsEvent(object objectOrClass)
パラメータ :
-
objectOrClass — テストされるオブジェクト。
Event.StartIndexing() ターゲット・クラスのエクステントに対して非同期インデックス作成を開始します。インデックス・モードが Event.INDEX_MODE_SYNC である場合は、例外をスローします (“インデックス更新の制御” を参照してください)。
void StartIndexing()
Event.StopIndexing() エクステントに対する非同期インデックス作成を停止します。Event インスタンスを閉じるときにインデックスを更新しないようにする場合は、Event.Close() を呼び出す前にこのメソッドを呼び出します。
void StopIndexing()
関連項目 :
Event.Store().NET オブジェクトまたはオブジェクトの配列を永続イベントとして格納します。ループ内での配列の渡しと個別オブジェクトの渡しに大きなパフォーマンスの差はありませんが、配列内のすべてのオブジェクトは同じ型である必要があります。新しく挿入されたオブジェクトごとに 1 つの long データベース ID を返し、ID を返せない場合またはイベントが IdKey を使用している場合は 0 を返します。
long Store(object obj)
long[] Store(object[] objects)
パラメータ :
-
obj — データベースに追加される .NET オブジェクト。
-
objects — データベースに追加される .NET オブジェクトの配列。すべてのオブジェクトは同じ型である必要があります。
Event.UpdateObject() データベース ID または IdKey によって特定されたイベントを更新します。
void UpdateObject(long id, object obj)
void UpdateObject(object[] idkeys, object obj)
パラメータ :
-
id — データベース・オブジェクト ID
-
idkeys — IdKey を構成するオブジェクトの配列 (“IdKey の使用法” を参照してください)。基礎となるクラスに IdKey がないか、提供されたキーのいずれかが null であるか無効なタイプである場合は XEPException がスローされます。
-
obj — 指定したイベントを置き換える新しいオブジェクト。
関連項目 :
Event.WaitForIndexing() 非同期インデックス作成の完了を待機します。インデックス作成が完了した場合は true を返し、インデックス作成が完了する前に待機がタイムアウトした場合は false を返します。インデックス・モードが Event.INDEX_MODE_SYNC である場合は、例外をスローします。
bool WaitForIndexing(int timeout)
パラメータ :
-
timeout — タイムアウトになるまで待機する秒数 (-1 の場合は永久に待機し、0 の場合は直ちに返します)。
関連項目 :
クラス EventQuery<>
クラス InterSystems.XEP.EventQuery<> は、データベースから個別のイベントを取得、更新および削除するために使用できます。
EventQuery<>.AddParameter() は、この EventQuery<> と関連付けられた SQL クエリの順序の次のパラメータを結合します。
void AddParameter(object val)
パラメータ :
-
val — このクエリ文字列の次のパラメータに使用する値。
関連項目 :
EventQuery<>.Close() は、このインスタンスで保持されているすべてのリソースを解放します。
void Close()
EventQuery<> のインスタンスが範囲外になる前に、そのインスタンスで必ず Close() を呼び出すことが重要です。それを閉じないと、深刻なメモリ・リークが発生することがあります。それは、.NET ガーベッジ・コレクションでは、基盤となるネイティブ・コードによって割り当てられたリソースを解放できないためです。
EventQuery<>.DeleteCurrent() GetNext() によって最後にフェッチされたイベントを削除します。
void DeleteCurrent()
関連項目 :
EventQuery<>.Execute() は、この EventQuery<> と関連付けられた SQL クエリを実行します。クエリが正常に実行された場合、この EventQuery<> には、他の EventQuery<> メソッドでアクセスできる結果セットが含まれます。
void Execute()
関連項目 :
EventQuery<>.GetAll() は、単一のリストとして結果セット内のすべての行からターゲット・クラス E のオブジェクトを返します。
System.Collections.Generic.List<E> GetAll()
GetNext() を使用して、結果セット内のすべてのターゲット・クラス E のオブジェクトを取得し、これを List に返します。このリストは、更新または削除には使用できません (ただし、各オブジェクトの Id または IdKey を取得する方法がある場合、Event メソッドの UpdateObject() および DeleteObject() は使用できます)。GetAll() および GetNext() は同じ結果セットにアクセスできません。一方のメソッドが呼び出されると、他方のメソッドは Execute() が再び呼び出されるまで使用できません。
このメソッドは、オブジェクトのリストの保持に高いコストがかかるため、各項目に対して明示的に GetNext() を呼び出すループよりもリソースを多く消費します。
関連項目 :
クエリ・データの処理、Event.UpdateObject()、Event.DeleteObject()
EventQuery<>.GetFetchLevel() は、現在のフェッチ・レベルを返します (“フェッチ・レベルの定義” を参照してください)。
int GetFetchLevel()
EventQuery<>.GetNext() は、ターゲット・クラス E のオブジェクトを結果セットの次の行から返します。結果セットにそれ以上項目がない場合は、null を返します。
E GetNext()
関連項目 :
EventQuery<>.SetFetchLevel() は、フェッチ・レベルを設定することで返されるデータの量を制御します (“フェッチ・レベルの定義” を参照してください)。
例えば、フェッチ・レベルを Event.FETCH_LEVEL_DATATYPES_ONLY に設定すると、このクエリによって返されるオブジェクトは、それらのデータ型プロパティのみ設定されるようになり、オブジェクト・タイプ、配列、またはコレクションのプロパティは何も生成されません。このオプションを使用すると、クエリ・パフォーマンスが大幅に向上します。
void SetFetchLevel(int level)
パラメータ :
-
level — フェッチ・レベル定数 (Event クラスで定義される)。
サポートされるフェッチ・レベルは以下のとおりです。
-
Event.FETCH_LEVEL_ALL — 既定。すべてのプロパティが生成されます。
-
Event.FETCH_LEVEL_DATATYPES_ONLY — データ型プロパティのみが生成されます。
-
Event.FETCH_LEVEL_NO_ARRAY_TYPES — すべての配列がスキップされます。
-
Event.FETCH_LEVEL_NO_OBJECT_TYPES — すべてのオブジェクト・タイプがスキップされます。
-
Event.FETCH_LEVEL_NO_COLLECTIONS — すべてのコレクションがスキップされます。
EventQuery<>.UpdateCurrent() GetNext() によって最後にフェッチされたイベントを更新します。
void UpdateCurrent(E obj)
パラメータ :
-
obj — 現在のイベントを置き換える .NET オブジェクト。
関連項目 :
インタフェース InterfaceResolver
既定では、インタフェースとして宣言されたプロパティはスキーマ生成の際に無視されます。この動作を変更するには、InterfaceResolver の実装を ImportSchema() メソッドへ渡して、インタフェース・タイプを正しい具体的なデータ型で置換するための情報を提供します。
InterfaceResolver.GetImplementationClass() は、インタフェースとして宣言されたプロパティの実際のタイプを返します。詳細は、“InterfaceResolver の実装” を参照してください。
Type GetImplementationType(Type declaringClass, string fieldName, Type interfaceClass)
パラメータ :
-
declaringClass — fieldName が interfaceClass として宣言されるクラス。
-
fieldName — インタフェースとして宣言された declaringClass のプロパティ名。
-
interfaceClass — 解決されるインタフェース。
クラス XEPException
クラス InterSystems.XEP.XEPException は、Event、EventPersister、および EventQuery<> のほとんどのメソッドによりスローされる例外を実装します。このクラスは System.SystemException からメソッドおよびプロパティを継承します。