gpt4 book ai didi

SQL 更新(德尔福)

转载 作者:行者123 更新时间:2023-12-02 14:19:20 25 4
gpt4 key购买 nike

我想知道你是否可以帮助我解决一个我似乎无法解决的非常简单的问题。

基本上,我在 Delphi 7 中创建了一个投票系统。在用户选中复选框投票"is"后,我需要通过将“是投票”字段增加一来更新我的表“规则”。

这就是问题所在,由于某种原因,表总是增加值 2 而不是 1!

请尽可能提供帮助,我对此很陌生,所以请耐心等待。

这是我的代码:(注意:“bYes”是一个带有复选框值的 bool 值。 “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;

最佳答案

根据组件设置,qry1.Active := True;qry1.Open; 将再次执行 sql,并且根据组件将引发执行后附加异常。您只需在 begin .. end block 内调用 qry1.ExecSQL;

begin
if byes then // omitt = True
begin
qry1.SQL.Text := 'UPDATE rules SET [Yes votes] = [yes votes] + 1 WHERE ruleid = "1"';
qry1.ExecSQL;
end
else
begin
qry1.SQL.Text := 'UPDATE rules SET [no votes] = [no votes] + 1 WHERE ruleid = "1"';
qry1.ExecSQL;
end;
end;

另一种调用方式可能是

begin
if byes then // omitt = True
qry1.SQL.Text := 'UPDATE rules SET [Yes votes] = [yes votes] + 1 WHERE ruleid = "1"'
else
qry1.SQL.Text := 'UPDATE rules SET [no votes] = [no votes] + 1 WHERE ruleid = "1"';
qry1.ExecSQL;

end;

关于SQL 更新(德尔福),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19422052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com