我不知道如果你能帮我解决一个非常简单的问题,我似乎解决了。SQL更新(德尔福)
基本上,我在Delphi 7中创建了一个投票系统。用户选中复选框投票“是”之后,我需要通过增加“是投票”字段来更新我的表“规则”。
这里是问题出在哪里,出于某种原因,表是总是增加值2而不是1!
无论如何请协助,我很新,所以请耐心等待。
这里是我的代码: (注:“再见”是从一个复选框值的布尔 “RuleID”被链接到一定的规则一个字段名到付诸表决)
if bYes = True then
begin
qry1.Active := False;
qry1.SQL.Text := 'UPDATE rules SET [Yes votes] = [yes votes] + 1 WHERE ruleid = "1"';
qry1.ExecSQL;
qry1.Active := True;
end
else
qry1.close;
qry1.SQL.Text := 'UPDATE rules SET [no votes] = [no votes] + 1 WHERE ruleid = "1"';
qry1.ExecSQL;
qry1.Open;
除了缺乏的'在else分支中开始,结束'qry1.Open'或'qry1.Active = True'应该被删除,因为这会导致组件的额外执行,然后依赖于组件的错误。你只需要使用qry1.ExecSQL。 – bummi
@bummi:这就是为什么:'问题:表总是增加一个值2而不是1!'。您的评论应该是答案。 –
安全提示:不要忘记使用SQL参数;) –