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.2 件数に応じて検索した結果を取得する

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

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

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

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

■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オブジェクトを作成し、検索条件として以下のプロパティを設定します。

[表:プロパティ一覧]

プロパティ

説明

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

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

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

機能説明

Dataプロパティ

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

GetDividedDataメソッド

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

GetStreamメソッド

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

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


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

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