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 データの検索 |
Webアプリケーションでは、検索した結果を一定件数ごとに区切って、前後に連続したデータを取得したい場合があります。
このような場合、ShunSearchRequirementオブジェクトのPositionプロパティに、その直前の検索処理によって取得した最終位置情報、または、先頭位置情報を指定してXML文書を連続して取得します。
条件に一致するXML文書を連続して取得する場合の流れについて、以下の図に示します。
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(); |
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() |
Positionプロパティにデータの取得位置を指定します。最初のページを表示する検索処理では、最初のデータから取り出しを行うため、データの取得位置(取得開始位置または取得終了位置)にはnullを指定します。取得位置にnullを指定すると、1件目からデータを取り出します。
Positionプロパティにデータの取得位置を指定します。次のページを表示する検索処理では、前回検索時の最終位置情報をLastPositionプロパティで取得しておき、データの取得位置(取得開始位置)に指定します。この指定により前回取得したデータの続きのデータを取得します。
Positionプロパティにデータの取得位置を指定します。前のページを表示する検索処理では、前回検索時の先頭位置情報をFirstPositionプロパティで取得しておき、データの取得位置(取得終了位置)に指定します。この指定により前回取得したデータの前の部分のデータを取得します。
検索は、Searchメソッドに検索条件を設定したShunSearchRequirementオブジェクトを指定し、使用します。検索した結果としてShunResultSetオブジェクトが作成されます。
ShunResultSetオブジェクトから1件分のデータに相当するShunRecordオブジェクトを取り出し、ShunRecordオブジェクトからXML文書を取り出します。
XML文書を取り出すには、目的に応じて以下のプロパティまたはメソッドを使用します。使用可能なプロパティおよびメソッドについては以下の表を参照してください。
プロパティ名またはメソッド名 |
機能説明 |
---|---|
Dataプロパティ |
XML文書をStringオブジェクトで取り出します。 |
GetDividedDataメソッド |
XML文書をStringオブジェクトの2次元配列で取り出します。 |
GetStreamメソッド |
XML文書をStreamオブジェクトで取り出します。 |
備考. GetDividedDataメソッドは、検索した結果をテキスト形式で取り出す場合に有効です。
FirstPositionプロパティで先頭位置情報を取得します。
LastPositionプロパティで最終位置情報を取得します。
目次
索引
![]() ![]() |