|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
![]()
ADOでレコードセットに抽出結果が0件の場合の判定
ひささん
[2003/08/14 18:57:08]
[3587]
|
Re:ADOでレコードセットに抽出結果が0件の場合の判定
S.Kosさん
[2003/08/14 21:18:57]
[3588]
Re:ADOでレコードセットに抽出結果が0件の場合の判定
ひささん
[2003/08/14 22:27:39]
[3590]
Re:ADOでレコードセットに抽出結果が0件の場合の判定
S.Kosさん
[2003/08/15 8:53:26]
[3594]
Re:ADOでレコードセットに抽出結果が0件の場合の判定
S.Kosさん
[2003/08/17 10:21:12]
[3601]
Re:ADOでレコードセットに抽出結果が0件の場合の判定
暇人さん
[2003/08/15 10:51:38]
[3597]
|
| [3587] ADOでレコードセットに抽出結果が0件の場合の判定 |
| 投稿者:ひささん 2003/08/14 18:57:08 |
| こんにちは。 DBを検索して、結果が0件であった場合の判定はどのように行えばよいのでしょうか? Set con = Server.CreateObject("ADODB.Connection") con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Server.MapPath("test.mdb") & ";" Set rs = con.Execute("select * from test_tbl where id=100") rsにレコードセットが0件であった場合の判定方法を教えてください。 宜しくお願いします。 |
| [3588] Re:ADOでレコードセットに抽出結果が0件の場合の判定 |
| 投稿者:S.Kosさん 2003/08/14 21:18:57 |
| こん○○は、S.Kosです。 > DBを検索して、結果が0件であった場合の判定はどのように行えばよ > > Set rs = con.Execute("select * from test_tbl where id=100") > ADOであれなんであれ、 Count関数を使うことになるでしょう。 SELECT COUNT(fieldname) AS Cnt FROM TEST_TBL WHERE id = "100" if Cnt = 0 then なんちゃらかんちゃら |
| [3590] Re:ADOでレコードセットに抽出結果が0件の場合の判定 |
| 投稿者:ひささん 2003/08/14 22:27:39 |
| こんばんは。 > SELECT COUNT(fieldname) AS Cnt FROM TEST_TBL WHERE id "100" Count関数を使うと行数はわかるのですが、 データを取り出して処理していて、たまたま0件だった場合の時の 処理を教えていただけると幸いです。 Count関数で始めに行を見て、取り出したら2度SQLを発行するので 処理的に美しくないかと思っています。 宜しくお願いします。 |
| [3594] Re:ADOでレコードセットに抽出結果が0件の場合の判定 |
| 投稿者:S.Kosさん 2003/08/15 8:53:26 |
| こん○○は、S.Kosです。 > Count関数で始めに行を見て、取り出したら2度SQLを発行するので > これが『美しくない』という点には、 同感です。 トラフィックも二倍ですもんね。 けれども、 SQLの場合、例えば書込では既存レコードの有無によって命令そのものが違うように、これは仕方のないことかと・・・。 私の場合、読み書きともにストアドプロシージャにこの判断と処理を書くことで、アプリ側のインターフェイスを簡潔にしています。 もしかしたらADOの内部でここらあたりを吸収してくれてるかも・・・ ADOを『単なる接続ハンドラ』としてしか捉えられずにいる私には、ここまでですね。 |
| [3601] Re:ADOでレコードセットに抽出結果が0件の場合の判定 |
| 投稿者:S.Kosさん 2003/08/17 10:21:12 |
| こん○○は、S.Kosです。 > Count関数で始めに行を見て、取り出したら2度SQLを発行するので > 処理的に美しくないかと思っています。 > 休み中にいろいろやって見ました。 現在 ASP + ADO が使える環境に無く、 Excel/VBA + ADO ですが、 おそらく同じだと思います。 DB,RS を文字通りのADO変数とし、 SqlStr = "SELECT * FROM table WHERE なんちゃら" として、 Set RS = DB.Execute(SqlStr) とした後、 If RS.BOF And RS.EOF Then で「該当レコード無し」を検出できました。 |
| [3597] Re:ADOでレコードセットに抽出結果が0件の場合の判定 |
| 投稿者:暇人さん 2003/08/15 10:51:38 |
| > Set con = Server.CreateObject("ADODB.Connection") > con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ > "Data Source=" & Server.MapPath("test.mdb") & ";" > Set rs = con.Execute("select * from test_tbl where id=100") > > rsにレコードセットが0件であった場合の判定方法を教えてください。 Dim counter counter = 0 Do Until rs.EOF ここで counter = counter + 1 表示させるしょり 例:Response.Write rs.Fields.Value("AAA") rs.MoveNext Loop という様に自分でカウントすればできます 後で If counter = 0 then 〜 として処理を行います。 あるいは、RecordsetオブジェクトをOpenしてカーソルをデフォルト以外にすればRecordCountメソッドでレコード数が取れます。 |
|
TreeBBS For ASP V.0.1.3 |