Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 -
目次 索引 前ページ次ページ

第2部 APIでのアプリケーション開発> 第10章 .NET APIのアプリケーション開発> 10.3 .NET APIの使用方法> 10.3.2 データの検索

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

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

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

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

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

ソートを行う場合には、検索条件に一致したすべての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プロパティにソート式を設定します。

[表: プロパティ一覧]

プロパティ

説明

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

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

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

機能説明

Dataプロパティ

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

GetDividedDataメソッド

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

GetStreamメソッド

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


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006