我想在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)是作为参数接收的变量。
如何让它发挥作用?
答案 0 :(得分:3)
PASSWORD
是Access中的reserved word,因此如果您将其用作列名,则必须将其括在方括号中。
请改为尝试:
DB.SQL.Add('INSERT INTO tblUsers ');
DB.SQL.Add('(FirstName,Surname,Username,[Password],Grade) ');