我要删除数据库的记录,删除之前肯定要检验一下数据库里面是否有用户要删除的记录。
比如让用户输入一个记录的"代码"字段,根据这条字段删除这条记录。应该怎么做呢?
重要的是在怎么样判断用户输入的代码是否有这样的记录?
我想的是可以根据用户的输入查询一下,但查询之后有什么函数可以判断查询到了信息。
我用的是ADOQuery等ADO组件。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select top 1 * from tabel1 where 代码=' + QuotedStr(需删除的代码));
        Open;
        if IsEmpty then
          //没有记录,没有查询到信息
        else 
          //查询到了信息
      end;
    end;
      

  2.   

    if adoquery1.recoundcount>0 then
      

  3.   

    删除之前肯定要检验一下数据库里面是否有用户要删除的记录————这样做的目的是什么?
    根据某些条件删除记录,当然只会删除符合条件的记录,如果要返回删除的记录的个数,可以用这样的语句:delete from table1 where 代码 = 'xxxx'
    select @@ROWCOUNT  --sql server中的系统变量,返回上一个语句受影响的记录个数
      

  4.   

    var
      sql,FieldContent : string;
      i : integer;
    begin
      sql := 'select * from TableName where FieldName = '''+FieldContent+'''';
      AdoQueryName.Close;
      AdoQueryName.SQL.Clear;
      AdoQueryName.SQL.Add(sql);
      AdoQueryName.Open;
      if AdoQueryName.RecordCount > 0 then
      begin
        AdoQueryName.First;
        for i := 1 to AdoQueryName.RecordCount do
        begin
          AdoQueryName.Delete;
          AdoQueryName.Next;
        end;
      end;
    end;
      

  5.   

    var
    ADOTemp:TADOQuery;
    tempstr,temp : string;
    RecNo,i : integer;
    begin
          ADOTemp:=TADOQuery.Create(nil);
          ADOTemp.Connection :=ADOCon;
          tempstr:='select * from adm where strcomp(A_czr,:A_czr,0)=0 '; //如果用的是ACCESS,STRCOMP可以区分大小写混用的情况
          ADOTemp.sql.Clear;
          ADOTemp.SQL.Add(tempstr);
          ADOTemp.Parameters.ParamByName('A_czr').Value:=e1.Text; //e1.text处可输入查询内容
          ADOTemp.Open;
          if ADOTemp.RecordCount>=1 then
             begin
                tempstr:='记录<'+e1.Text+'>存在!杀或留,请首座指示';
                showmessage(tempstr);
             end;
      tempstr:='确实要删除本记录--'+edit1.text+' ?';
         if(Application.MessageBox(pchar(tempstr),'删除',MB_YESNO)=IDNO) then
           begin
             exit;
           end;  tempstr:='delete from adm where A_czr=:A_czr ';
      ADOTemp.sql.Clear;
      ADOTemp.SQL.Add(tempstr);
      ADOTemp.Parameters.ParamByName('A_czr').value:=edit1.text;
      ADOTemp.ExecSQL;
      ADOTemp.Free;
      

  6.   

    首先 用select * from table1 where field1='zhi'
    执行后
    用 try findfirst 来判断是否有记录 
    如果有就可以删除 如果没有就不删除