我似乎遇到了更新查询的问题,我正在尝试使用它来使用Delphi XE2更新用户在MS Access数据库中的当前详细信息。我之前问了一个问题并得到了保留字的帮助,但现在我似乎又遇到了这个查询的错误。 错误是:
Syntax error(missing operator) in query expression '?
Surname=?
Username=?
[Password]=?
Grade=?'
这是我不断得到的错误 以下是我所做的编码:
procedure TUser.UpdateUser(pFirstname, pSurname, pUsername,
pPassword: String; pGrade, pID: Integer);
var
sSQL : String;
begin
opendb('QuizDB.mdb');
DB.Close;
DB.SQL.Add('UPDATE tblUsers SET');
DB.SQL.Add('Firstname=:Firstname');
DB.SQL.Add('Surname=:Surname');
DB.SQL.Add('Username=:Username');
DB.SQL.Add('[Password]=:Password');
DB.SQL.Add('Grade=:Grade');
DB.SQL.Add('WHERE ID=:ID');
Db.Parameters.ParamByName('Firstname').Value := pFirstname;
Db.Parameters.ParamByName('Surname').Value := pSurname;
Db.Parameters.ParamByName('Username').Value := pUsername;
Db.Parameters.ParamByName('Password').Value := pPassword;
Db.Parameters.ParamByName('Grade').Value := pGrade;
DB.Parameters.ParamByName('ID').Value := pID;
DB.ExecSQL;
end;
如果DB是ADOQuery组件,则ID是数据库中的主键,对每条记录都是唯一的。 TUser是我作为对象创建的课程。
请帮我解决这个问题。
答案 0 :(得分:3)
请在SQL添加行中使用逗号:
DB.Close;
DB.SQL.Add('UPDATE tblUsers SET');
DB.SQL.Add('Firstname=:Firstname,');
DB.SQL.Add('Surname=:Surname,');
DB.SQL.Add('Username=:Username,');
DB.SQL.Add('[Password]=:Password,');
DB.SQL.Add('Grade=:Grade');
DB.SQL.Add('WHERE ID=:ID');