2013-10-08 5 views
4

Я хотел бы использовать запрос Insert Into в Delphi XE2 для вставки информации пользователя в базу данных MS Access. Проблема заключается в том, что я все время получаю ту же ошибку:Ошибка синтаксиса с запросом

Syntax error in INSERT INTO statement

Я провел некоторое исследование, но нет окончательного ответа. мой исходный код:

opendb('QuizDB.mdb'); 

    DB.Close; 
    DB.SQL.Add('INSERT INTO tblUsers'); 
    DB.SQL.Add('(FirstName,Surname,Username,Password,Grade)'); 
    DB.SQL.Add('Values (:Firstname, :Surname, :Username, :Password, :Grade)'); 

    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.ExecSQL; 

QuizDB быть имя базы данных, DB является компонентом ADOQuery, а затем р (вар) являются переменные, полученные в качестве параметров.

Как это сделать?

ответ

3

PASSWORD является reserved word в Access, поэтому, если вы используете его в качестве имени столбца, вы должны заключить его в квадратные скобки.

Попробуйте вместо этого:

DB.SQL.Add('INSERT INTO tblUsers '); 
DB.SQL.Add('(FirstName,Surname,Username,[Password],Grade) '); 
+0

Спасибо так много. ИТ-работа все, что мне нужно было сделать, это добавить эти скобки. –

+1

Должно быть около ста вопросов относительно этой ловушки. – Gustav

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