DBに条件のデータがあるかどうかを調べる場合


XXX  2005-11-11 01:10:45  No: 127514

DBに条件のデータがあるかどうかを調べる場合は
どのようにしたらよいでしょうか?
rs.Openで、条件のデータを取得して、そのデータが何件あるかを調べる
A=Recordset.recordcount
をつかうのでしょうか。
どなたかご教授ねがいます。


M's  2005-11-11 01:32:53  No: 127515

SQL文のWHEREで条件指定するなど。


特攻隊長まるるう  2005-11-11 02:09:03  No: 127516

データベースの種類や使うオブジェクトにによって独自の方法が
存在する場合もあるけど Recordset を使うのなら RecordCount
を調べるのは1つの方法だね。ただし条件によっては RecordCount
が有効にならない(-1 になる)場合がありますので過去ログ検索『RecordCount』でどうぞ。

>SQL文のWHEREで条件指定するなど。
して SQL 文の集計関数 Count で数えるとかね。


EOF  2005-11-11 02:24:34  No: 127517

EOF


ひろ  2005-11-11 02:28:05  No: 127518

数を数えるよりは

・最初の1行が早く取得できるように調整したSELECT文を投げる
  (可能なら1行だけ取得する事を明示したSQLにする)
・RecordSetの先頭に行く
・(先頭に行ったのに)既に終端に達していたらデータ無しと判定できる

のように選択結果の最初の1行目が存在するかどうかを確認する方が早い場合もあります。


XXX  2005-11-11 03:28:14  No: 127519

分かりにくい説明で申し訳ございません。

DBに2種類のテーブルがあり、例えば、「商店名」の”aaa店”を削除したい場合
もう1つのテーブルで削除対象のaaa店を使用していたら、削除できないように
したいのです。


とおりすがり  2005-11-11 03:44:27  No: 127520

SELECT 商店名 FROM テーブル2(もう一つのテーブル) WHERE "aaa店"
ってSQLを投げたのでは駄目?
使用していないときの条件によってSQLが変わると思いますが、
とりあえず、
「もう一つのテーブルで削除対象のaaa店を使用していない」=「もう一つのテーブルにaaa店のデータがない」
という条件下であれば、これで確認できると思います。


ひろ  2005-11-11 18:07:08  No: 127521

NOT EXISTSを使えませんか?


なな  2005-11-11 19:43:05  No: 127522

ごくごくふつ〜に、
NOT EXISTSの使い方、そのままですね。(Oracleでは)

ただ、未だにデータベースが何かが記述されていないのは
なぜなんだろうな〜、


XXX  2005-11-11 20:39:53  No: 127523

すみません。
Accessです。
NOT EXISTSの使い方でやってみます。
ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加