データを削除する場合の、C++ .NETの使用例を示します。
「2006年7月18日に神奈川で宿泊可能なホテルのうち、ホテル9のデータを削除したい。」
年月日(2006年7月18日)および、場所(神奈川)を条件に検索を行い、ホテル名『ホテル9』と一致したデータを削除します。
以下にC++ .NETを使用したプログラミング例を示します。
#using <mscorlib.dll> #using <system.dll> #using <Fujitsu.Shunsaku.dll> using namespace System; using namespace Fujitsu::Shunsaku; class SampleDelete { public: static void Main( String *args __gc[] ) { ShunService *service = 0; try { // ShunService の作成 service = new ShunService(); // ホスト名 ポート番号を指定して Shunsaku に接続 service->Host = "DirSvr1"; service->Port = 23101; service->Connect(); // ShunSearchRequirement の作成 ShunSearchRequirement *req = new ShunSearchRequirement(); // 各種検索条件の設定 req->QueryExpression = "/document/base/prefecture == '新横浜' AND /document/information/date == '2006年07月18日'"; req->ReturnExpression = "/document/base/name/text()"; req->ReplyNumber = 1; req->RequestCount = 30; // 検索条件を指定して検索を実行 ShunResultSet *rs = service->Search( req ); // 削除用 ShunRecordCollection を作成 ShunRecordCollection *deleteRecords = new ShunRecordCollection(); // ホテル9のレコードを取得 ShunRecordEnumerator *enumerator = rs->Records->GetEnumerator(); while ( enumerator->MoveNext() ) { ShunRecord *record = enumerator->Current; if ( record->Data->Equals( "ホテル9" ) ) { deleteRecords->Add( record ); } } // 該当レコードの取得に成功している場合 データを削除 if ( deleteRecords->Count > 0 ) { service->Delete( deleteRecords ); Console::WriteLine( "削除終了" ); } // Shunsaku から切断 service->Disconnect(); } catch ( ShunContinuousException *e ) { // ShunContinuousExceptionが発生した場合の処理を記述 try { if( service != 0 && service->State == ShunConnectionState::Open ) { service->Disconnect(); } } catch ( ShunException *ex ) { Console::WriteLine( "エラーメッセージ : {0}", ex->Message ); } Console::WriteLine( "エラーメッセージ : {0}", e->Message ); } catch ( ShunConnectionTerminatedException *e ) { // ShunConnectionTerminatedExceptionが発生した場合の処理を記述 Console::WriteLine( "エラーメッセージ : {0}", e->Message ); } } }; int main() { return SampleDelete::Main( Environment::GetCommandLineArgs() ); } |
削除終了