4

Insert IntoDelphi 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 に答える