2013-10-08 1 views
4

델파이 XE2에서 Insert Into 쿼리를 사용하여 MS 액세스 데이터베이스에 사용자의 정보를 삽입하고 싶습니다. 문제는 계속 동일한 오류가 발생하는 것입니다.구문 오류

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 구성 요소 및 P (VAR)되고, 데이터베이스 이름 인.

어떻게 작동합니까?

답변

3

PASSWORD은 Access에서 reserved word이므로 열 이름으로 사용할 경우 대괄호로 묶어야합니다.

대신을 시도해보십시오

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

감사합니다 순전히. IT 부서에서해야 할 일은 그 괄호를 추가하는 것뿐입니다. –

+1

이 함정에 관한 백 질문에 가깝습니다. – Gustav