小弟是个数据库新手。做个软件时想要在插入数据之前查询MDB数据库中的某个字段中是否已存在有该数据  比如siteInfo 表中存在  webURL  字段在插入http://www.baidu.com/   之前。首先查询是否已存在有该数据。。
  
   然后再根据用户选择进行相关操作。   请教下相关的实现代码该如何写呢。。先行谢过了。。

解决方案 »

  1.   

    PS :  程序操作数据库使用的控件是 ADO 的。。现在使用的有ADOConnection ADOCommand  和  ADOQuery
      

  2.   

    function ExsitRecord(value:String):boolean;
    var Tmp:TAdoquery;
    begin
      Tmp:=TAdoquery.create(self);
      Tmp.connection:=ADOConnection;
      with Tmp do
      begin
        Close;
        Sql.Clear;
        Sql.Add('select * from siteInfo  where webURL='''+value+''' ');
        Open;
      end;
      if Tmp.IsEmpty then
      result:=false
      else
      result:=true;
    end;
      

  3.   

    再插入前调用这个函数就OK了,如果返回值是 false的话就说明没有值存在了。
      

  4.   

       额..可以再请教一下吗.....我使用listView读取数据库的时候.字段中的每条数据只能显示20字节的内容...不知道是怎么回事呢....我的代码是这样的///
    var
      tmpItem: TListItem;
    begin
         countITG := 0 ;
         ListView1.Items.Clear;
         with adoquery1 do
          begin
            close;
              sql.Clear;
              sql.Add( 'select site_N,U_name,U_pass,statu from siteInfo');
              Open;
      while not Eof do
      begin
        inc(countITG);
        ADOQuery1.Active   :=   True;
        tmpItem := ListView1.Items.Add;
        tmpItem.Caption := intToStr(countITG);
        tmpItem.SubItems.Add(FieldByName('site_N').Value);
       next;
      end;
    end;
    end;
      

  5.   

    修改下楼上的代码:
    function ExsitRecord(value:String):boolean;
    var Tmp:TAdoquery;
    begin
      Tmp:=TAdoquery.create(self);
      Tmp.connection:=ADOConnection;
      with Tmp do
      begin
      Close;
      Sql.Clear;
      Sql.Add('select * from siteInfo where webURL='''+value+''' ');
      Open;
      end;
      if Tmp.IsEmpty then
      result:=false
      else
      result:=true;
      tmp.close;
      tmp.free;
    end;
      

  6.   

    抱歉的说.....之前我设置用完后free掉了.....但还是一样出错....
      

  7.   

    加上try..except 看看呢
      

  8.   

    问题解决了.....原因是我在要执行的下一个函数中free掉了一个idHttp...不知道是不是这样子导致内存覆盖了....可能跟我这台诡异的机子有点关系....然后注释掉了那行代码就没问题了.....伤脑筋呢.....
    额...上面还有的那个小问题...请问谁还能帮帮忙吗....
    引用:额..可以再请教一下吗.....我使用listView读取数据库的时候.字段中的每条数据只能显示20字节的内容...不知道是怎么回事呢....我的代码是这样的///
    var
      tmpItem: TListItem;
    begin
      countITG := 0 ;
      ListView1.Items.Clear;
      with adoquery1 do
      begin
      close;
      sql.Clear;
      sql.Add( 'select site_N,U_name,U_pass,statu from siteInfo');
      Open;
      while not Eof do
      begin
      inc(countITG);
      ADOQuery1.Active := True;
      tmpItem := ListView1.Items.Add;
      tmpItem.Caption := intToStr(countITG);
      tmpItem.SubItems.Add(FieldByName('site_N').Value);
      next;
      end;
    end;
    end;