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.8 条件に一致するデータの内容を集計する

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

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

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

[図: 条件に一致する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 ソート式”を参照してください。

[表: プロパティ一覧]

プロパティ

説明

QueryExpression

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

ReturnExpression

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

SortExpression

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

ReplyNumber

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

RequestCount

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

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

◆(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