ページの先頭行へ戻る
Interstage Shunsaku Data Manager アプリケーション開発ガイド

10.3.2 データの検索

.NET APIでは、以下に示す操作ができます。


これらの操作を組み合わせることによって、さまざまなアプリケーションを作成することができます。


参考

ダイレクトアクセスキーを使ったデータ検索も可能です。

ダイレクトアクセスキー機能の詳細については、“第6章 ダイレクトアクセス機能”を参照してください。

C# .NETでのデータを検索するサンプルプログラムについては、“G.1 データの検索”、VB .NETでのデータを検索するサンプルプログラムについては、“H.1 データの検索”、C++ .NETでのデータを検索するサンプルプログラムについては、“I.1 データの検索”を参照してください。


以降に、データの検索を行うアプリケーションの作成方法について説明します。


10.3.2.1 条件に一致するXML文書の件数を取得する

条件に一致するデータを取り出す前に、件数のみ取得したい場合があります。

このような場合、GetHitCountメソッドで検索式を指定し、件数のみを取得します。


条件に一致するXML文書の件数を取得する場合の流れについて、以下の図に示します。


図10.5 条件に一致するXML文書の件数を取得する場合の流れ


C# .NETの記述例

ShunService service = new ShunService();
service.Connect();

int hitCount = service.GetHitCount( "/document/base/prefecture == '大阪'" );         (1)
Console.WriteLine( "[ヒット件数] = {0}", hitCount );

service.Disconnect();

VB .NETの記述例

Dim service As New ShunService()
service.Connect()

Dim hitCount As Integer = service.GetHitCount( "/document/base/prefecture == '大阪'" )  (1)
Console.WriteLine( "[ヒット件数] = {0}", hitCount )

service.Disconnect()

(1) 検索条件に一致するXML文書のヒット件数の取得

GetHitCountの引数に検索式を指定して、ヒット件数を取得します。

検索式の詳細は、“付録B 検索式、リターン式およびソート式の書式”を参照してください。


10.3.2.2 件数に応じて検索した結果を取得する

Webアプリケーションでは、画面にすべての検索結果を表示するのではなく、任意の件数ごとにページを制御することが一般的です。

このような場合、ShunSearchRequirementオブジェクトの返信開始番号(ReplyNumber)と返信要求件数(RequestCount)を指定して、取得するデータの件数を制御します。


件数に応じて検索した結果を取得する場合の流れについて、以下の図に示します。


図10.6 件数に応じて検索した結果を取得する場合の流れ


C# .NETの記述例

ShunService service = new ShunService();
service.Connect();

ShunSearchRequirement req = new ShunSearchRequirement();                          (1)
req.QueryExpression = "/document/base/prefecture == '大阪'"; (1)
req.ReturnExpression = "/document/base/name, /document/base/price"; (1)
req.ReplyNumber = 11; (1)
req.RequestCount = 5; (1) ShunResultSet rs = service.Search( req ); (2) Console.WriteLine( "[ヒット件数] = {0}", rs.HitCount ); int i = 0; foreach ( ShunRecord record in rs.Records ) { (3) ++i; Console.WriteLine( "[結果] {0}件目 = {1}", i, record.Data ); (3) } service.Disconnect();

VB .NETの記述例

Dim service As New ShunService()
service.Connect()

Dim req As New ShunSearchRequirement()                                           (1)
req.QueryExpression = "/document/base/prefecture == '大阪'" (1)
req.ReturnExpression = "/document/base/name, /document/base/price" (1)
req.ReplyNumber = 11 (1)
req.RequestCount = 5 (1) Dim rs As ShunResultSet = service.Search( req ) (2)
Console.WriteLine( "[ヒット件数] = {0}", rs.HitCount ) Dim i As Integer = 0 For Each record As ShunRecord In rs.Records (3) i += 1 Console.WriteLine( "[結果] {0}件目 = {1}", i, record.Data ) (3) Next service.Disconnect()

(1) 検索条件の設定

ShunSearchRequirementオブジェクトを作成し、検索条件として以下のプロパティを設定します。


表10.2 プロパティ一覧

プロパティ

説明

QueryExpression

検索式を指定します。省略はできません。

ReturnExpression

リターン式を指定します。

ReplyNumber

返信開始番号を指定します。省略した場合、1が指定されます。

RequestCount

返信要求件数を指定します。省略した場合、検索した結果から得られる件数はconductor用動作環境ファイルまたはdirector用動作環境ファイルのAnsMaxに設定された値となります。

検索式およびリターン式の詳細は、“付録B 検索式、リターン式およびソート式の書式”を参照してください。

ポイント

返信要求件数には、1画面に表示する件数を指定します。


(2) 検索の実行(ShunResultSetオブジェクトの作成)

検索は、Searchメソッドに検索条件を設定したShunSearchRequirementオブジェクトを指定し、使用します。検索した結果としてShunResultSetオブジェクトが作成されます。

ポイント

検索条件に一致するXML文書のヒット件数は、ShunResultSetオブジェクトのHitCountプロパティで取得できます。この値を使用して、検索した結果のページ数などを求めることができます。


(3) 検索した結果の取出し

ShunResultSetオブジェクトから1件分のデータに相当するShunRecordオブジェクトを取り出し、ShunRecordオブジェクトからXML文書を取り出します。

XML文書を取り出すには、目的に応じて以下のプロパティまたはメソッドを使用します。使用可能なプロパティおよびメソッドについては以下の表を参照してください。


表10.3 XML文書を取り出す場合に使用可能なプロパティおよびメソッド

プロパティ名またはメソッド名

機能説明

Dataプロパティ

XML文書をStringオブジェクトで取り出します。

GetDividedDataメソッド

XML文書をStringオブジェクトの2次元配列で取り出します。

GetStreamメソッド

XML文書をStreamオブジェクトで取り出します。

備考. GetDividedDataメソッドは、検索した結果をテキスト形式で取り出す場合に有効です。


10.3.2.3 条件を追加しながら検索した結果を取得する

検索した結果の件数が非常に多いとき、さらに条件を追加して件数を絞りたい場合があります。

このような場合、ShunSearchRequirementオブジェクトに指定する検索式に条件を追加して新しい検索式を作成し、再度検索する処理を行います。この操作を繰り返すことで、画面に表示された検索結果を参照しながら検索結果を絞り込むことができます。


条件を追加しながら検索した結果を取得する場合の流れについて、以下の図に示します。


図10.7 条件を追加しながら検索した結果を取得する場合の流れ


C# .NETおよびVB .NETの記述例

条件を追加しながら検索した結果を取得する場合の記述例については、“10.3.2.2 件数に応じて検索した結果を取得する”を参照してください。

条件を追加する場合には、ShunSearchRequirementオブジェクトに指定する検索式に条件を追加してください。


10.3.2.4 データをソートして取得する

検索した結果をある特定の要素をキーとしてソートして取得したい場合があります。

データの部分情報をソートして取得するには、ShunSearchRequirementオブジェクトのSortExpressionプロパティを使用します。

データをソートして取得する場合の流れについて、以下の図に示します。


図10.8 データをソートして取得する場合の流れ


ポイント

ソートを行う場合には、検索条件に一致したすべてのXML文書を参照してソート処理を行います。検索式には、結果件数が適正な値となるような条件を指定し、ソート対象のデータを絞ることが応答性能をよくするポイントです。ソートを実施する前に検索条件に一致したXML文書の件数を調べるには、GetHitCountメソッドに検索条件を設定して使用します。


C# .NETの記述例

ShunService service = new ShunService();
service.Connect();

ShunSearchRequirement req = new ShunSearchRequirement();                          (1)
req.QueryExpression = "/document/base/prefecture == '大阪'"; (1)
req.ReturnExpression = "/document/base/name, /document/base/price"; (1)
req.SortExpression = "val(/document/base/price/text()) DESC"; (1)
ShunResultSet rs = service.Search( req ); (2) Console.WriteLine ( "[ヒット件数] = {0}", rs.HitCount ); int i = 0; foreach ( ShunRecord record in rs.Records ) { (3) ++i; Console.WriteLine( "[結果] {0}件目 = {1}", i, record.Data ); (3) } service.Disconnect();

VB .NETの記述例

Dim service As New ShunService()
service.Connect()

Dim req As New ShunSearchRequirement()                                     (1)
req.QueryExpression = "/document/base/prefecture == '大阪'" (1)
req.ReturnExpression = "/document/base/name, /document/base/price" (1)
req.SortExpression = "val(/document/base/price/text()) DESC" (1) Dim rs As ShunResultSet = service.Search( req ) (2) Console.WriteLine( "[ヒット件数] = {0}", rs.HitCount ) Dim i As Integer = 0 For Each record As ShunRecord In rs.Records (3) i += 1 Console.WriteLine( "[結果] {0}件目 = {1}", i, record.Data ) (3) Next service.Disconnect()

(1) 検索条件の設定

ShunSearchRequirementオブジェクトを作成し、検索条件として以下のプロパティを設定します。ソートを行う場合は、SortExpressionプロパティにソート式を設定します。


表10.4 プロパティ一覧

プロパティ

説明

QueryExpression

検索式を指定します。省略はできません。

ReturnExpression

リターン式を指定します。

SortExpression

ソート式を指定します。ソートしない場合は、省略します。

ReplyNumber

返信開始番号を指定します。省略した場合、1が指定されます。

RequestCount

返信要求件数を指定します。省略した場合、検索した結果から得られる件数はconductor用動作環境ファイルまたはdirector用動作環境ファイルのAnsMaxに設定された値となります。

検索式およびリターン式の詳細は、“付録B 検索式、リターン式およびソート式の書式”を参照してください。

ソート式の詳細は、“B.5 ソート式”を参照してください。

注意

ソート式に指定したキーの長さによって返却できる件数が決まります。最大件数は1000件です。返信開始番号や返信要求件数に返却可能な最大件数を超える値を指定しても、それ以上のデータは返却することができません。返却可能なデータの最大件数は、ReturnableCountプロパティで取得できます。

キーの長さと返却可能なデータ件数の目安については、“付録C 定量値”を参照してください。

参考

取得開始位置を指定することにより、続きのデータを取り出すことができます。これにより1000件以上のデータを取り出すことができます。詳細については、“10.3.2.7 条件に一致するXML文書を連続して取得する”を参照してください。


(2) 検索の実行(ShunResultSetオブジェクトの作成)

検索は、Searchメソッドに検索条件を設定したShunSearchRequirementオブジェクトを指定し、使用します。検索した結果としてShunResultSetオブジェクトが作成されます。


(3) 検索した結果の取出し

ShunResultSetオブジェクトから1件分のデータに相当するShunRecordオブジェクトを取り出し、ShunRecordオブジェクトからXML文書を取り出します。

XML文書を取り出すには、目的に応じて以下のプロパティまたはメソッドを使用します。使用可能なプロパティおよびメソッドについては以下の表を参照してください。


表10.5 XML文書を取り出す場合に使用可能なプロパティおよびメソッド

プロパティ名またはメソッド名

機能説明

Dataプロパティ

XML文書をStringオブジェクトで取り出します。

GetDividedDataメソッド

XML文書をStringオブジェクトの2次元配列で取り出します。

GetStreamメソッド

XML文書をStreamオブジェクトで取り出します。


10.3.2.5 レコードIDを利用してXML文書全体を取得する

XML文書の中から必要なXML文書を検索する場合、はじめからXML文書の全体を取得するのではなく、XML文書を識別するのに有効な部分情報を取得します。利用者は、これらの部分情報から詳細情報を取得したいXML文書を特定します。

XML文書の全体を取り出すには、部分情報を取り出したShunRecordオブジェクトをShunRecordCollectionオブジェクトに設定し、SearchByRecordIDメソッドを使用することで目的のXML文書の全体を取り出すことができます。

レコードIDを利用してXML文書全体を取得する場合の流れについて、以下の図に示します。


図10.9 レコードIDを利用してXML文書全体を取得する場合の流れ


C# .NETの記述例

ShunService service = new ShunService();
service.Connect();

ShunSearchRequirement req = new ShunSearchRequirement();                          
req.QueryExpression = "/document/base/prefecture == '大阪'";                      
req.ReturnExpression = "/document/base/name/text()";              

ShunResultSet rs = service.Search( req );                                         
Console.WriteLine("[ヒット件数] = " + rs.HitCount);                            
ShunRecordCollection recCol = new ShunRecordCollection();                       (1)
foreach ( ShunRecord record in rs.Records ) {
(2)
if ( record.Data == "ホテル1" ) {
(2)
recCol.Add( record );
(2)
}

}


r
s = service.SearchByRecordID( recCol ); (3)
foreach ( ShunRecord record in
rs.Records ) { (4)
Console.WriteLine( "[詳細] = " + record.Data );
(4)
}


service.Disconnect();

VB .NETの記述例

Dim service As New ShunService()
service.Connect()

Dim req As New ShunSearchRequirement()
req.QueryExpression = "/document/base/prefecture == '大阪'"
req.ReturnExpression = "/document/base/name/text()"

Dim rs As ShunResultSet = service.Search( req )
Console.WriteLine( "[ヒット件数] = {0}", rs.HitCount )
Dim recCol As New ShunRecordCollection()                                      (1)
For Each record As ShunRecord In rs.Records (2)
If record.Data = "ホテル1" Then (2)
recCol.Add( record ) (2) End If Next rs = service.SearchByRecordID( recCol ) (3)
For Each record As ShunRecord In rs.Records (4)
Console.WriteLine( "[詳細] = {0}", record.Data) (4) Next service.Disconnect()

(1) ShunRecordCollectionオブジェクトの作成

ShunRecordCollectionオブジェクトを作成します。


(2) レコードIDを保持するShunRecordオブジェクトを設定

ShunRecordオブジェクトを、ShunRecordCollectionオブジェクトに設定します。

ShunRecordオブジェクトを設定するには、以下のメソッドを使用します。使用可能なメソッドについては以下の表を参照してください。


表10.6 ShunRecordオブジェクトを設定するメソッド一覧

メソッド名またはプロパティ名

機能説明

Add(ShunRecord record)

ShunRecord を ShunRecordCollection の末尾に追加します。

AddRange(ShunRecord[ ] records)

ShunRecord 配列の要素を ShunRecordCollection の末尾にコピーします。

Insert(int index, ShunRecord record)

ShunRecordCollection 内の指定したインデックス位置に、 ShunRecord を挿入します。

Item[int index]

指定したインデックス位置のShunRecordを置き換えます。
C# .NETでは、このプロパティは ShunRecordCollectionクラスのインデクサになります。


(3) 検索の実行(ShunRecordCollectionオブジェクトの作成)

検索の実行はSearchByRecordIDメソッドを使用します。検索した結果としてShunRecordCollectionオブジェクトが作成されます。


(4) 検索した結果を取出し

ShunRecordCollectionオブジェクトから1件分のデータに相当するShunRecordオブジェクトを取り出し、ShunRecordオブジェクトからXML文書を取り出します。

XML文書を取り出すには、目的に応じて以下のプロパティまたはメソッドを使用します。使用可能なプロパティおよびメソッドについては以下の表を参照してください。


表10.7 XML文書を取り出す場合に使用可能なプロパティおよびメソッド

プロパティ名またはメソッド名

機能説明

Dataプロパティ

XML文書をStringオブジェクトで取り出します。

GetDividedDataメソッド

XML文書をStringオブジェクトの2次元配列で取り出します。

GetStreamメソッド

XML文書をStreamオブジェクトで取り出します。

備考. GetDividedDataメソッドは、検索した結果をテキスト形式で取り出す場合に有効です。


10.3.2.6 ヒット件数の上限値を設定する

ヒット件数の上限値を設定することで、ソートまたは集計の応答性能を安定させることができます。ヒット件数が上限値を超えた場合には、ソートまたは集計を中断し検索条件に一致したヒット件数を通知します。

ヒット件数が上限値を超えないように検索式に条件を追加し、ソートまたは集計の検索範囲を絞り込みます。

ヒット件数の上限値を設定するには、HitCountLimitプロパティを使用します。


ヒット件数の上限値を設定する場合の流れについて、以下の図に示します。


図10.10 ヒット件数の上限値を設定する場合の流れ


記述例

ShunService service = new ShunService();
service.Connect();

ShunSearchRequirement req = new ShunSearchRequirement();
req.QueryExpression = "/document/base/prefecture == '大阪'";
req.ReturnExpression = "/document/base/name, /document/base/price";
req.SortExpression = "val(/document/base/price/text()) DESC";
req.HitCountLimit = 10000;                                                     (1)

ShunResultSet rs = service.Search( req );
if ( rs.IsHitCountLimitOver ) {                                                (2)
  Console.WriteLine ("ヒット件数が上限を超えました");
  Console.WriteLine ("[ヒット件数] = " + rs.HitCount);                          (3)
}
else{
  Console.WriteLine("[ヒット件数] = " + rs.HitCount);
  int i = 0; 
  foreach ( ShunRecord record in rs.Records ) {
    ++i; 
    Console.WriteLine( "[結果] {0}件目 = {1}", i, record.Data );
  }
}

service.Disconnect();

(1) ヒット件数の上限値設定

HitCountLimitプロパティのパラメタにヒット件数の上限値を設定します。

注意

ソート式が設定されていない場合には、Searchメソッド実行時にエラーとなります。


(2) ヒット件数が上限値を超えているの確認

IsHitCountLimitOverプロパティでヒット件数が上限値を超えているかの確認をします。


(3) ヒット件数の取出し

ヒット件数が上限値を超えている場合は、ヒット件数のみ取出し可能です。


10.3.2.7 条件に一致するXML文書を連続して取得する

Webアプリケーションでは、検索した結果を一定件数ごとに区切って、前後に連続したデータを取得したい場合があります。


このような場合、ShunSearchRequirementオブジェクトのPositionプロパティに、その直前の検索処理によって取得した最終位置情報、または、先頭位置情報を指定してXML文書を連続して取得します。

条件に一致するXML文書を連続して取得する場合の流れについて、以下の図に示します。


図10.11 条件に一致するXML文書を連続して取得する場合の流れ


C# .NETの記述例

ShunService service = new ShunService();
service.Connect();

ShunSearchRequirement req = new ShunSearchRequirement();
req.QueryExpression = "/document/base/prefecture == '大阪'";
req.ReturnExpression = "/document/base/name, /document/base/price";
req.SortExpression = "val(/document/base/price/text()) DESC";
req.ReplyNumber = 5;

// 先頭位置情報
ShunPosition firstPosition = null;
// 最終位置情報
ShunPosition lastPosition = null;

// どのページを表示するかによってpositionの設定を変更

// 次のページを表示する場合は directionがNEXT、前のページを表示する場合は directionがPREVとする
switch ( direction ) {
case NEXT:
// 次のページを表示する場合 (2) req.Position = lastPosition;
break;

case PREV:

// 前のページを表示する場合 (3)
req.Position = firstPosition;
break;

default:

// 最初のページを表示する場合 (1)
req.Position = null;
break;
}

ShunResultSet rs = service.Search( req );
(4)
Console.WriteLine ( "[ヒット件数] = {0}", rs.HitCount );
int i = 0;
foreach ( ShunRecord record in rs.Records ) { (5)
++i;
Console.WriteLine( "[結果] {0}件目 = {1}", i, record.Data ); (5)
}

// 先頭位置情報と最終位置情報を格納

firstPosition = rs.FirstPosition; (6)
lastPosition = rs.LastPosition; (6)
service.Disconnect();

VB .NETの記述例

Dim service As New ShunService()
service.Connect()

Dim req As New ShunSearchRequirement()
req.QueryExpression = "/document/base/prefecture == '大阪'"
req.ReturnExpression = "/document/base/name, /document/base/price"
req.SortExpression = "val(/document/base/price/text()) DESC"
req.ReplyNumber = 5

' 先頭位置情報
Dim firstPosition As ShunPosition = Nothing
' 最終位置情報
Dim lastPosition As ShunPosition = Nothing ' どのページを表示するかによってpositionの設定を変更
' 次のページを表示する場合は directionがNEXT、前のページを表示する場合は directionがPREVとする Select Case direction
Case NEXT
' 次のページを表示する場合 (2)
req.Position = lastPosition

Case PREV

' 前のページを表示する場合 (3)
req.Position = firstPosition

Case Else

' 最初のページを表示する場合 (1)
req.Position = Nothing
End Select

Dim rs As ShunResultSet = service.Search(req)
(4)
Console.WriteLine( "[ヒット件数] = {0}", rs.HitCount )
Dim i As Integer = 0
For Each record As ShunRecord In rs.Records (5)
i += 1
Console.WriteLine( "[結果] {0}件目 = {1}", i, record.Data ) (5)
Next

' 先頭位置情報と最終位置情報を格納

firstPosition = rs.FirstPosition (6)
lastPosition = rs.LastPosition (6) service.Disconnect()

(1) 最初のページを表示する場合

Positionプロパティにデータの取得位置を指定します。最初のページを表示する検索処理では、最初のデータから取り出しを行うため、データの取得位置(取得開始位置または取得終了位置)にはnullを指定します。取得位置にnullを指定すると、1件目からデータを取り出します。


(2) 次のページを表示する場合

Positionプロパティにデータの取得位置を指定します。次のページを表示する検索処理では、前回検索時の最終位置情報をLastPositionプロパティで取得しておき、データの取得位置(取得開始位置)に指定します。この指定により前回取得したデータの続きのデータを取得します。


(3) 前のページを表示する場合

Positionプロパティにデータの取得位置を指定します。前のページを表示する検索処理では、前回検索時の先頭位置情報をFirstPositionプロパティで取得しておき、データの取得位置(取得終了位置)に指定します。この指定により前回取得したデータの前の部分のデータを取得します。


(4) 検索の実行

検索は、Searchメソッドに検索条件を設定したShunSearchRequirementオブジェクトを指定し、使用します。検索した結果としてShunResultSetオブジェクトが作成されます。


(5) 検索した結果の取出し

ShunResultSetオブジェクトから1件分のデータに相当するShunRecordオブジェクトを取り出し、ShunRecordオブジェクトからXML文書を取り出します。

XML文書を取り出すには、目的に応じて以下のプロパティまたはメソッドを使用します。使用可能なプロパティおよびメソッドについては以下の表を参照してください。


表10.8 XML文書を取り出す場合に使用可能なプロパティおよびメソッド

プロパティ名またはメソッド名

機能説明

Dataプロパティ

XML文書をStringオブジェクトで取り出します。

GetDividedDataメソッド

XML文書をStringオブジェクトの2次元配列で取り出します。

GetStreamメソッド

XML文書をStreamオブジェクトで取り出します。

備考. GetDividedDataメソッドは、検索した結果をテキスト形式で取り出す場合に有効です。


(6) 先頭位置情報と最終位置情報を格納

FirstPositionプロパティで先頭位置情報を取得します。

LastPositionプロパティで最終位置情報を取得します。


10.3.2.8 条件に一致するデータの内容を集計する

検索した結果をある特定の要素の値で集計して取得したい場合があります。

データの内容を集計するには、ShunSearchRequirementオブジェクトのSortExpressionプロパティを使用します。ShunSearchRequirementオブジェクトのプロパティであるリターン式に集合関数指定を指定すると、検索した結果が集計されて返却されます。集計処理では、合計値、平均値、最大値、最小値または件数を求めることができます。

条件に一致するデータの内容を集計する場合の流れについて、以下の図に示します。


図10.12 条件に一致するXML文書を連続して取得する場合の流れ


C# .NETの記述例

ShunService service = new ShunService();
service.Connect();

ShunSearchRequirement req = new ShunSearchRequirement();                          (1)
req.QueryExpression = "/document/base/prefecture == '大阪'";
(1)
req.ReturnExpression = "max(/document/base/price/text())";
(1)
req.SortExpression = " /document/base/prefecture/text()";
(1)

ShunResultSet rs = service.Search( req ); (2)
foreach ( ShunRecord record in rs.Records ) {
(3)
String[][] data = record.GetDividedData();
(3)
Console.WriteLine( "[結果] {0}", data[0][0] );
(3) } service.Disconnect();

VB .NETの記述例

Dim service As New ShunService()
service.Connect()

Dim req As New ShunSearchRequirement()                                     (1)
req.QueryExpression = "/document/base/prefecture == '大阪'" (1)
req.ReturnExpression = "max(/document/base/price/text())" (1)
req.SortExpression = " /document/base/prefecture/text()" (1)

Dim rs As ShunResultSet = service.Search( req )
(2)
For Each record As ShunRecord In rs.Records (3)
Dim data()() As String = record.GetDividedData() (3)
Console.WriteLine( "[結果] {0}", data(0)(0) ) (3) Next service.Disconnect()

(1) 検索条件の設定

ShunSearchRequirementオブジェクトを作成し、検索条件として以下のプロパティを設定します。集計を行う場合は、リターン式に集合関数指定を指定し、ソート式にグループキーを指定する必要があります。

リターン式および集合関数指定の詳細については、“B.4 リターン式”を参照してください。ソート式の詳細は、“B.5 ソート式”を参照してください。


表10.9 プロパティ一覧

プロパティ

説明

QueryExpression

検索式を指定します。省略はできません。

ReturnExpression

リターン式を指定します。

SortExpression

ソート式を指定します。ソートしない場合は、省略します。

ReplyNumber

返信開始番号を指定します。省略した場合、1が指定されます。

RequestCount

返信要求件数を指定します。省略した場合、検索した結果から得られる件数はconductor用動作環境ファイルまたはdirector用動作環境ファイルのAnsMaxに設定された値となります。

検索式およびリターン式の詳細は、“付録B 検索式、リターン式およびソート式の書式”を参照してください。


(2) 検索の実行(ShunResultSetオブジェクトの作成)

検索は、Searchメソッドに検索条件を設定したShunSearchRequirementオブジェクトを指定し、使用します。検索した結果としてShunResultSetオブジェクトが作成されます。


(3) 検索した結果の取出し

ShunResultSetオブジェクトから1件分のデータに相当するShunRecordオブジェクトを取り出し、ShunRecordオブジェクトからXML文書を取り出します。

XML文書を取り出すには、目的に応じて以下のプロパティまたはメソッドを使用します。使用可能なプロパティおよびメソッドについては以下の表を参照してください。


表10.10 XML文書を取り出す場合に使用可能なプロパティおよびメソッド

プロパティ名またはメソッド名

機能説明

Dataプロパティ

XML文書をStringオブジェクトで取り出します。

GetDividedDataメソッド

XML文書をStringオブジェクトの2次元配列で取り出します。

GetStreamメソッド

XML文書をStreamオブジェクトで取り出します。