qy_tongji.close;
qy_tongji.sql.text := 'update tongji set countnum=countnum+1 where nameid='+quotedstr(add.Text);
qytongji.execsql;其中“tongj”是我建的数据库,有两个字段:“nameid”,“countnum”.请问我这样写有什么错误?
我的nameid和countnum都是int.
我是想这样的,在add.text中填一个数字,如果填的数字和nameid相同,则和nameid对应的countnum加一,请问还有什么方法吗?谢谢!

解决方案 »

  1.   

    quotedstr(add.Text);  ____改为: strtoint(add.text); set countnum=countnum+1 where  ..... sql语句错了啊!!
      

  2.   

    qy_tongji.sql.text := 'update tongji set countnum=countnum+1 where nameid='+add.Text;to楼上:sql语句没有错误,既然是int就不quotestr了,必要的时候用showmessage看看sql.text
      

  3.   

    应该养成这样的习惯:在增加Sql 以前要清空Sql。如:
    with qy_tongji Do
    Begin
         close;
         Sql.Clear;
         Sql.Add('update tongji set countnum=countnum+1 where nameid='+Add.Text);
         //InputBox('','',Sql.Text);
         ExecSql;
    End;
    把InputBox中的内容复制到数据解析中执行一下。就能找出真正的原因所在。
      

  4.   

    qy_tongji.SQL.Clear;
    qy_tongji.SQL.Add('update tongji set countnum=countnum+1 where nameid='+add.Text);
    qy_tongji.Open;
    这样就行了。
    不用sql.text,sql.text里面含有不可见字符,你设个断点跟踪一下就会发现。
      

  5.   

    qy_tongji.SQL.Text := 'update tongji set countnum=countnum+1 where nameid=' + Trim(add.Text);
      

  6.   

    在增加SQL以前要清空SQL
    WITH QY_TONGJI DO
    begin
    CLOSE;
    SQL.CLEAR;
    SQL.ADD('SELECT * FROM "数据库名:表名"');
    execsql;
    end;
      

  7.   

    to  weizi2000(秋风啊):可以了,但用了execsql后我的dbgrid没显示了,请问得怎样修改才能使dbgrid有显示?谢谢大家!
      

  8.   

    'update tongji set countnum = countnum + 1 where nameid = '+ add.Text