Admins
테이블에 다음과 같은 열 더불어, MS Access 데이터베이스를 사용하고
에 내 삽입에 구문 오류가 : 이것은 내 코드입니다나는 문
Column Type
====== ====
Name Text
Surname Text
Dateadded Date/time
Adminnumber Number(long integer)
Password Text
ID type Autonumber (Not sure if ID is relevant)
그러나 그것은 나에게 구문 오류를주는 유지 .
ADOquery1.Active := false;
adoquery1.sql.Text := 'insert into Admins(Name, surname, Adminnumber, Dateadded,password)Values('''+edit11.Text+''', '''+edit12.text+''', '''+edit13.Text+''', '''+edit14.Text+''', '''+edit15.text+''')';
ADOquery1.ExecSQL;
Adoquery1.SQL.Text := 'select * from Admins';
ADOquery1.Active := true;
나는 하루를 알아 내려고 노력했지만 그 코드는 내가 사용하는 코드에 상관없이 동일한 오류가 발생했습니다. 오류 메시지 'INSERT INTO 문의 구문 오류'로
프로젝트 만들기 Project1.exe 발생한 예외 클래스 eoleException 입니다.
나는 또한 시도 :
ADOquery1.SQL.Add('Insert into admins');
ADOquery1.SQL.Add('(Name , Surname, Dateadded, Adminnumber, Password)');
ADOquery1.SQL.Add('Values :Name, :Surname, :Dateadded, :adminnumber :Password)');
ADOquery1.Parameters.ParamByName('Name').Value := edit11.Text;
ADOquery1.Parameters.ParamByName('Surname').Value := edit12.Text;
ADOquery1.Parameters.ParamByName('Dateadded').Value := edit13.Text;
ADOquery1.Parameters.ParamByName('Password').Value := edit14.Text;
ADOquery1.Parameters.ParamByName('Adminnumber').Value := edit15.Text;
ADOquery1.ExecSQL;
ADOquery1.SQL.Text := 'Select * from admins';
ADOquery1.Open ;
하지만이 코드는 절
에서 저에게 문제를 제공
정확한 오류 란 무엇인가요? 오류를 생성하는 쿼리의 정확한 텍스트는 무엇입니까? 첫 번째 버전은 사용자가 원하는 모든 SQL을 실행할 수 있으므로 여러 가지 구문 오류가 발생할 수 있습니다. (힌트 : SQL 주입 공격에 대해 광범위하게 열려 있습니다.) – David
첫 번째 코드의 정확한 오류는 "project project1.exe에서 예외 클래스 eoleException이 발생했습니다. 'INSERT INTO 문에서 구문 오류가 발생했습니다.' 그리고 두 번째 코드 오류는 "project project1.exe가 'FROM clause'오류 메시지와 함께 예외 클래스 eoleException을 발생 시켰습니다." – user2748631
트리플 아포스트로피가 문제가 될 것으로 기대하고 있습니다. 리터럴 구분 기호로 큰 따옴표를 사용하거나 Sontheim Solution은 'chr (39)'에 의해 작은 따옴표를 나타내는'chr' 함수와 동일한 델파이의 함수를 사용합니다 : – collapsar