【发布时间】:2013-09-05 12:26:53
【问题描述】:
Votes 列的默认值为 0。每次单击按钮时,它都必须将我想要的任何值添加到我想要的特定行。
我的错误是:
语法错误:更新语句。 [[德尔福]]
这是我的代码:
procedure TForm4.BitBtn1Click(Sender: TObject);
var
spinval : integer;
begin
spinval := SpinEdit1.value;``
// Candidatetable.Insert;
// Candidatetable['Votes'] := Candidatetable['Votes'] + spinval;
ADOQuery1.Active := false;
ADOQuery1.SQL.Text := 'Update Candidate_table set votes = ''' +
Candidatetable['Votes'] + IntToStr(spinval) +
''' where Name = ''' + DBLookupComboBox1.Text + '''';
ADOQuery1.ExecSQL;
ADOQuery1.Active := false;
ADOQuery1.SQL.Text := 'Select * from Candidate_table';
ADOQuery1.Active := true;
MessageDlgPos('Thank you for voting. You will be logged out.' , mtInformation, [mbOK], 0, 1000, 500);
Form4.Hide;
Form2.Show;
end;
请帮助 =)
谢谢。
【问题讨论】:
-
使用named parameters 代替未经处理的字符串连接。
-
也许去掉`spinval := SpinEdit1.value;`之后的刻度线;`
-
您在任务的哪一部分遇到了问题?查看您的 SQL 并找到错误。您还没有在此处显示 SQL。您已经展示了用于构造 SQL 的公式,但没有展示结果,而结果显然是 Delphi 不喜欢的部分。
-
Jaco,请停止你现在正在做的事情,然后用谷歌搜索“SQL 注入”这个词。
-
@Jaco:我已经回滚(撤消了)你上次的编辑。在您收到答案后,这里不允许更改整个问题。这样做会使答案不再与问题匹配,从而导致投票失败。回答您的第一个问题只是让您完全改变它的人也浪费了很多时间。如果您有新问题,请发布新问题。您可能想再次阅读How to Ask,这是您在此处创建帐户时同意理解的。