2013-10-09 2 views
0

У меня, похоже, проблема с запросом обновления, я пытаюсь использовать его для обновления текущих данных пользователя в базе данных MS Access с помощью Delphi XE2. Я задал вопрос ранее и получил помощь по зарезервированному слову, но теперь у меня, похоже, есть еще одна ошибка с этим запросом. Ошибка:Ошибка синтаксиса (отсутствующий оператор) в выражении запроса при выполнении запроса на обновление

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

Вы видели это: [http://dev.mysql.com/doc/refman/5.0/en/update.html](http:/ /dev.mysql.com/doc/refman/5.0/en/update.html) и разделитель запятой? – pf1957

+0

MySQL - это не то же самое, что MS Access. Используйте теги, которые соответствуют вашему вопросу, а не просто добавляют что-либо похожее. Это помогает правильно организовать вопросы и делает их присутствие известным людям, которые могут вам помочь –

+0

Извините @KenWhite –

ответ

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'); 
+2

@Alladinian ת Я думаю, он получил правильный ответ здесь. образец был бы неплохой мыслью. – kobik

+0

Спасибо комментатору, это сработало. –

+0

@ Alladinian thx для предупреждения, но это ответ ... Я просто буду заботиться о том, чтобы включить блок кода для того, чтобы быть образцом темы. – ikutluay

Смежные вопросы