4

我想Insert Into在 Delphi XE2 中使用查询将用户信息插入 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) 是作为参数接收的变量。

我如何使它工作?

4

1 回答 1

3

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

试试这个:

DB.SQL.Add('INSERT INTO tblUsers ');
DB.SQL.Add('(FirstName,Surname,Username,[Password],Grade) ');
于 2013-10-08T18:35:46.410 回答