SELECT文での重複データ検索

解決


まゆみ  2010-01-10 20:05:25  No: 36891

サイトを拝見させていただきました。以前、ほかの方で重複処理に関する質問をしていましたが、私も同じような質問があります。これから追加しようとしているデータがあるかどうか、SELECT文で重複データを確認するいい手段を探しています。現在試していることが、クエリをオープンし、フォームにあるTEDITに入力されている個人IDをSELECT文のWHEREを使い検索、そして、QUERYのレコードをカウントして、1上なら重複ありと判断するというほうほうです。このやり方は、間違っていないでしょうか?それとも、ほかに良いやり方をご存知でしょうか?TRY EXCEPTを使う方法は、できれば避けたいと思っています。

また、レコードカウントの部分の方法を、IF文の中で、する方法を教えていただけたら、幸いです。
たとえば、IF QUERY.SQL.ADD('SELECT Count(*)  FROM TABLE WHERE CUSTOMER_ID =''' + EDIT.TEXT + '''') > 0 
ただ、これはQUERYが開いたままの状態ですので、失敗しました。

何卒よろしくお願いいたします。


igy  2010-01-10 20:18:18  No: 36892

>ただ、これはQUERYが開いたままの状態ですので、失敗しました。

閉じてから実行するのは、いかがですか?


HOta  2010-01-11 00:12:23  No: 36893

別のTQueryを使えばいかがですか?

function isRecord(Akey : String):Boolean;
var
  Query1:TQuery;
begin
  Query1 := TQuery.Create;
  try
    with Query1 do
    begin
      Close;
      with SQL do
      begin
        Clear;
        Add('SELECT Count(*)  FROM TABLE WHERE CUSTOMER_ID =''' + Akey + '''');
      end;
      try
        Open;
        if not EOF then 
          result := true
        else
          result := false;
      except
        Showmessage('Open Error');
        result := false;
      end;
      Close;
    end;
  finally
    Freeandnil(Query1);
  end;
end;


まゆみ  2010-01-11 07:20:04  No: 36894

非常に参考になりました。助けてくださり、ありがとうございました。


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

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






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