查询语法错误

时间:2013-10-08 18:16:03

标签: sql delphi ms-access delphi-xe2

我想在Delphi XE2中使用Insert Into查询将用户信息插入MS Access数据库。问题是我一直得到同样的错误:

  

INSERT INTO语句中的语法错误

我做了一些研究,但没有明确的答案。我的源代码是:

  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组件,然后p(var)是作为参数接收的变量。

如何让它发挥作用?

1 个答案:

答案 0 :(得分:3)

PASSWORD是Access中的reserved word,因此如果您将其用作列名,则必须将其括在方括号中。

请改为尝试:

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