我本来想修改一个表中的一个记录
用下面这段代码进行操作
  qWeb.sql.clear;
  qWeb.sql.add('select * from webmodel where webname=' + quotedstr(tvWeb.Selected.Text));
  qWeb.open;
  if not qWeb.eof then begin
    qWeb.Edit;
    qweb.fieldbyname('webname').AsString := 'AAAA';
    qweb.Post;
    qWeb.Refresh;
  end;结果发现记录就是没有被修改,也没有报任何错误;更奇怪的是,用下面这段代码却可以
    str:='AAAA';
    qweb.Close;
    qweb.SQL.Clear;
    qweb.SQL.Add('update webModel set webname=''' + str + '''');
    qweb.Prepare;
    qweb.execsql;

解决方案 »

  1.   

    看看关了AdoQuery的CacheUpdate没有,,如果不是,
    看看sqlServer端执行了些什么
      

  2.   

    if not qWeb.eof then begin
        qWeb.Edit;
        qweb.fieldbyname('webname').AsString := 'AAAA';
        qweb.Post;
        qweb.next;//加一句
        qWeb.Refresh;
      end;
      

  3.   

    if not qWeb.eof then 
    begin
        qWeb.First;//加上这句后在试试;
        qWeb.Edit;
        qweb.fieldbyname('webname').AsString := 'AAAA';
        qweb.Post;
        qWeb.Refresh;
    end;
      

  4.   

    回:insert2003
    还是没反应哦!
    真是郁闷啊
    有这样莫名奇妙的问题
      

  5.   

    回:luke5678
    不行啊 
      

  6.   

    while not qWeb.eof then begin
        qWeb.Edit;
        qweb.fieldbyname('webname').AsString := 'AAAA';
        qWeb.Edit;
        qWeb.next;
     end;
    qweb.post;
      

  7.   

    我给你的方法是改第一条记录的webname字段
    你要将所有记录中的webname字段都改掉当然不行拉
      

  8.   

    to : luke5678
    这我知道啦 还不至于那么笨啦
    实际上默认是修改第一个记录啦
      

  9.   

    试试:qWeb.First;
    while not qWeb.eof then
    begin
      qWeb.Edit;
      qweb.FieldByName('webname').AsString := 'AAAA';
      qWeb.Next;
    end;
    qweb.Post;
      

  10.   

    你的QWEB 有没有CLOSE?qWeb.sql.clear;
      qWeb.sql.add('select * from webmodel where webname=' + quotedstr(tvWeb.Selected.Text));
      qWeb.open;
      if not qWeb.eof then begin
        qWeb.Edit;
        qweb.fieldbyname('webname').AsString := 'AAAA';
        qweb.Post;
        qWeb.Refresh;
      end;是不是想该所有的记录(WEBNAME)?可是循环感觉你只做了一半
      

  11.   


      qWeb.sql.clear;
      qWeb.sql.add('select * from webmodel where webname=' + quotedstr(tvWeb.Selected.Text));
      qWeb.open;
      if not qWeb.eof then begin
        qWeb.Edit;
      if (qWeb.stats in [dsedit, dsinsert]) then //加一句
      begin
        qweb.fieldbyname('webname').AsString := 'AAAA';
        qweb.Post;
      end;
        qWeb.Refresh;
      end;
      

  12.   

    错了,qWeb.stats 应为qWeb.state
      

  13.   

    啊 我不是揭帖了吗
    难道没操作成功吗to:deluxtx(警告!CSDN--熊出没的地方
    我只要修改一个记录。
    to:longguolin(沧海桑人) 
    你只是加了个判断而已,还是不行啊
    啊 难道就没人遇到过这种情况吗
      

  14.   

    有没有这种可能:
    把你的sql语句打印出来执行看看是否有数据查询出来了,如果根本没有数据查询出来的话,当然就不会执行也不会报错了。呵呵,乱说的,还是新手的说。