DBに条件のデータがあるかどうかを調べる場合は
どのようにしたらよいでしょうか?
rs.Openで、条件のデータを取得して、そのデータが何件あるかを調べる
A=Recordset.recordcount
をつかうのでしょうか。
どなたかご教授ねがいます。
SQL文のWHEREで条件指定するなど。
データベースの種類や使うオブジェクトにによって独自の方法が
存在する場合もあるけど Recordset を使うのなら RecordCount
を調べるのは1つの方法だね。ただし条件によっては RecordCount
が有効にならない(-1 になる)場合がありますので過去ログ検索『RecordCount』でどうぞ。
>SQL文のWHEREで条件指定するなど。
して SQL 文の集計関数 Count で数えるとかね。
EOF
数を数えるよりは
・最初の1行が早く取得できるように調整したSELECT文を投げる
(可能なら1行だけ取得する事を明示したSQLにする)
・RecordSetの先頭に行く
・(先頭に行ったのに)既に終端に達していたらデータ無しと判定できる
のように選択結果の最初の1行目が存在するかどうかを確認する方が早い場合もあります。
分かりにくい説明で申し訳ございません。
DBに2種類のテーブルがあり、例えば、「商店名」の”aaa店”を削除したい場合
もう1つのテーブルで削除対象のaaa店を使用していたら、削除できないように
したいのです。
SELECT 商店名 FROM テーブル2(もう一つのテーブル) WHERE "aaa店"
ってSQLを投げたのでは駄目?
使用していないときの条件によってSQLが変わると思いますが、
とりあえず、
「もう一つのテーブルで削除対象のaaa店を使用していない」=「もう一つのテーブルにaaa店のデータがない」
という条件下であれば、これで確認できると思います。
NOT EXISTSを使えませんか?
ごくごくふつ〜に、
NOT EXISTSの使い方、そのままですね。(Oracleでは)
ただ、未だにデータベースが何かが記述されていないのは
なぜなんだろうな〜、
すみません。
Accessです。
NOT EXISTSの使い方でやってみます。
ありがとうございます。
ツイート | ![]() |