一个数据库计算的问题

ww8n 2004-05-08 12:10:27
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加一,请问还有什么方法吗?谢谢!
...全文
12 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lihaopeng4 2004-05-08
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里面含有不可见字符,你设个断点跟踪一下就会发现。
  • 打赏
  • 举报
回复
ldelphi 2004-05-08
应该养成这样的习惯:在增加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中的内容复制到数据解析中执行一下。就能找出真正的原因所在。

  • 打赏
  • 举报
回复
jinjazz 2004-05-08
qy_tongji.sql.text := 'update tongji set countnum=countnum+1 where nameid='+add.Text;

to楼上:sql语句没有错误,既然是int就不quotestr了,必要的时候用showmessage看看sql.text
  • 打赏
  • 举报
回复
hujinger 2004-05-08
quotedstr(add.Text); ____改为: strtoint(add.text);

set countnum=countnum+1 where ..... sql语句错了啊!!
  • 打赏
  • 举报
回复
xdf221 2004-05-08
'update tongji set countnum = countnum + 1 where nameid = '+ add.Text
  • 打赏
  • 举报
回复
ww8n 2004-05-08
to weizi2000(秋风啊):可以了,但用了execsql后我的dbgrid没显示了,请问得怎样修改才能使dbgrid有显示?谢谢大家!
  • 打赏
  • 举报
回复
bdesql 2004-05-08
在增加SQL以前要清空SQL
WITH QY_TONGJI DO
begin
CLOSE;
SQL.CLEAR;
SQL.ADD('SELECT * FROM "数据库名:表名"');
execsql;
end;
  • 打赏
  • 举报
回复
楚人无衣 2004-05-08
qy_tongji.SQL.Text := 'update tongji set countnum=countnum+1 where nameid=' + Trim(add.Text);
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库相关
加入

2462

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2004-05-08 12:10
社区公告
暂无公告