| Interstage Shunsaku Data Manager Application Development Guide - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX - |
Contents
Index
![]()
|
| Appendix I Sample C++ .NET Programs | > I.1 Searching Data |
When performing a search, the user sometimes prefers to obtain the search results after they have been sorted according to a specific element.
Specify the date and location in the search conditional expression and obtain the number of hotels that match the conditions and partial information about those hotels.
To show how the C++ .NET are used, the following example sorts the extracted data in descending order according to the accommodation rate.
Search Conditions'I want to know the hotels in Sydney that have a vacancy on 2006/07/18, and I want to sort the hotels in descending order according to the accommodation rate.'
Specify the date (2006/07/18) and the location (Sydney) as search conditions. Also specify the accommodation rate in the sort condition and then execute the search.
An Example of Using the APIsThe following is a sample program using the C++ .NET.
#using <mscorlib.dll>
#using <system.dll>
#using <Fujitsu.Shunsaku.dll>
using namespace System;
using namespace Fujitsu::Shunsaku;
class SampleSort1 {
public:
static void Main( String *args __gc[] ) {
ShunService *service = 0;
try {
// Create ShunService
service = new ShunService();
// Connect Shunsaku by specifying the host name and port number
service->Host = "DirSvr1";
service->Port = 33101;
service->Connect();
// Create ShunSearchRequirement
ShunSearchRequirement *req = new ShunSearchRequirement();
// Set each type of search conditions
req->QueryExpression = "/document {/base/city == 'Sydney' AND /information/date == '2006/07/18'}";
req->ReturnExpression = "/document/base/name, /document/base/price";
req->SortExpression = "/document/base/price/text() DESC";
req->ReplyNumber = 1;
req->RequestCount = 30;
// Specify the search condition and execute the search
ShunResultSet *rs = service->Search( req );
// Display the search results
Console::WriteLine( "Number of hits = {0}", __box( rs->HitCount ) );
int i = 0;
ShunRecordEnumerator *enumerator = rs->Records->GetEnumerator();
while ( enumerator->MoveNext() ) {
ShunRecord *record = enumerator->Current;
++i;
Console::WriteLine( "[Result] Item No. {0} = {1}", __box( i ), record->Data );
}
// Close the connection to Shunsaku
service->Disconnect();
}
catch ( ShunContinuousException *e ) {
// Processing to perform if ShunContinuousException occurs
try {
if( service != 0 && service->State == ShunConnectionState::Open ) {
service->Disconnect();
}
}
catch ( ShunException *ex ) {
Console::WriteLine( "Error message : {0}", ex->Message );
}
Console::WriteLine( "Error message : {0}", e->Message );
}
catch ( ShunConnectionTerminatedException *e ) {
// Processing to perform if ShunConnectionTerminatedException occurs
Console::WriteLine( "Error message : {0}", e->Message );
}
}
};
int main() {
return SampleSort1::Main( Environment::GetCommandLineArgs() );
} |
Execution Results
Number of hits = 3 [Result] Item No. 1 = <document><name> Hotel 1</name><price>350</price></document> [Result] Item No. 2 = <document><name> Hotel 3</name><price>250</price></document> [Result] Item No. 3 = <document><name> Hotel 2</name><price>150</price></document> |
Contents
Index
![]()
|