推奨:ASP 3.0高度なプログラミング(31) 7.1.2セマンティックまたはランタイムのエラーの発見と取り扱いは迷惑ですが、プログラミングで本当にエキサイティングな他のタイプのエラー - セマンティックエラー(セマンティックエラー)、または&&ldに遭遇するでしょう
質問について考えてください:最初の検索に基づいて二次検索を実現する方法は?
通常、私たちのアプローチは、最初の検索中に検索条件を保存し、2行の検索中に2つの検索条件を組み合わせて、次のようなデータベースで新しいクエリを実行することです。
最初の検索:[年齢]> 18のテーブルから *を選択します
2回目の検索:18歳以上のテーブルから *を選択し、「Zh%」のような名前を選択します
これを行うと、私たちが望む結果を達成できますが、私は個人的に効率が大幅に低下したと思います!
最初の検索されたレコードセットはキャッシュできます。2回目の検索は、データベースを再クエリする代わりに、キャッシュされたレコードセットでのみ実行されますか?
Recordsetオブジェクトにはプロパティフィルターがあり、条件を追加することで表示されるレコードセットを制御するために使用されますが、元のレコードセットには影響しません!二次検索を実現するためにそれを使用する方法を見てみましょう。
以下は引用されたコンテンツです。 <% DIM OCONN、ORS oconn = server.createObject(adodb.Connection)を設定します oconn.openプロバイダー= microsoft.jet.oledb.4.0; data source = server.mappath(db1.mdb) ORS = server.createObject(adodb.RecordSet)を設定します ors.open select * from t1から20歳以上、oconn、1,2 response.wone time search:select * from t1 from where age> 20 <br/> Response.Write ----------------------------------- <br/> <br/> ors.eofではありません Response.write ors(name)&:&ors(age)&<br/> ors.movenext ループ Response.Write Total:&ors.RecordCount&<br/> Response.Write ----------------------------------- <br/> <br/> Response.Write Secondary Search:Filter(「King%」のような名前)<br/> Response.Write ----------------------------------- <br/> <br/> ols.filter = 'king%'のような名前 そうでない場合(ors.eof and orss.bof)、orss.movefirst ors.eofではありません Response.write ors(name)&:&ors(age)&<br/> ors.movenext ループ Response.Write Total:&ors.RecordCount&<br/> Response.Write ------------------------------------ <br/> close ORS =何も設定しません oconn.close oconn =何も設定しません %> |
結果:
共有:ASPのFSOの魔法の機能を深く理解するASPでは、FSOはファイルシステムオブジェクトであるファイルシステムオブジェクトを意味します。操作するコンピューターファイルシステムとは、Webサーバーにあることを指します。したがって、これに適切な権限があることを確認してください。理想的には、独自のマシンを使用できます
2ページの前のページ12次のページ次のページ