RPG-CGI でも可能ですが、答を知ればガッカリされると思います。実は Google や Yahoo! も その都度、毎回、検索を行っています。データの続きはもちろん把握していません。ただし Google であれば start=10 (検索結果の 10件目から表示する)や Yahoo! であれば b=11 (検索結果の 11件目から表示する) というキーワードを 最下部の .... や「次へ」に埋め込んでいるだけという単純なものです。これは例えば Google の検索結果の「次へ」などのプロパティを表示してみればよくわかります。また Google や Yahoo! の検索エンジンは、その都度、SQL のあいまい検索のように動的に検索しているわけではなく検索ロボットによって回覧しておいて検索結果だけの莫大なデータ・ベースを作成しておいてこれらの検索結果を表示する、というものです。System i の開発者が想像するような高度な検索は行っていません。従って検索結果が正しいかというと正しいとは言い切れなくなります。EnterpriseServer の RPG# ではストートレスな CGI でありながらSFL レコードの最後のレコードを読んでから SETGT を行って次のレコードを読むような処理構造になっています。しかし動的なSQL によるあいまい検索では、SETGT は使うことはできません。従って Google や Yahoo! のように毎回、SQL 検索を行ってから最初の何十レコードは読み飛ばしてから表示をする、という何ともスマートさに欠ける方法しかなさそうです。
>GoogleやYahoo!のように毎回、SQL検索を行ってから>最初の何十レコードは読み飛ばしてから表示をする本当にそうなんですか?確かにGoogleやYahoo!のパラメータに「start=90」のようにレコード開始番号を持っていますね。しかしページをめくる度に毎回最初から検索している割には検索結果が早い気がします。AS/400のSQLもこのくらいのレスポンスが出せれば使ってみようと思うのですが。検索条件が複雑でない限りSETLLとSETGTを使用したいと思います。
検索エンジンの内部処の方法は( API 以外は) 非公開ですのでこちらで断定することはできませんがWebデザイナーとの協議した結果でも、でもほぼ間違いないと思います。Google や Yahoo! ではあまりにも検索が速すぎるのは検索結果をあらかじめデータ・ベース化して保管しているとしか思えません。従って Google や Yahoo! の検索結果は彼らの意にそぐわないサイトは検索結果の対象とはならず、検索結果には表示されません。また、かつては Yahoo! は、検索対象として希望する旨をYahoo! に申請して受け付けられると初めて、検索結果に載せてもらえる、というアナログな時代があり検索対象の申し込みを受け付ける受付者が電話対応していた時代もあったくらいです。( 実は弊社もメールで Yahoo! に申請したことがあります。)またこれは余談ですが Google をホーム・ページに設定したブラウザは動作が非常に不安定になってしまう障害が最近あります。Yahoo! や MSN などにホーム・ページを変更するとこの障害は発生しないことから、犯人は Google ではないかと気づいた次第です。障害があればぜひお試しください。