2015-02-05 6 views
0

다음 절차는 버튼 클릭 (button1)에서 실행됩니다. 여기이 SQL 쿼리에서 구문 오류가 발생하는 이유

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''AlphaMc'

SELECT * FROM 'AlphaMc111'' at line 1'. Process Stopped. Use Step or Run to continue.

의 절차입니다 : 데이터베이스에 로그인하라는 메시지가 후, 델파이는 다음과 같은 오류가 발생합니다

procedure TMainWin.Button1Click(Sender: TObject); 
begin 
    ADOConnection1.ConnectionString := 'Driver={MySQL ODBC 3.51 Driver}; 
    Server=db4free.net;Port=3306;Database=inventmanager;User=******; 
    Password=******;Option=3;'; 

    ADOConnection1.Connected := True; 
    ADOQuery1.Connection := ADOConnection1; 

    ADOQuery1.SQL.Add('SELECT * FROM ''AlphaMc111'''); 
    ADOQuery1.Open; 
end; 

답변

0

MySQL의 identifier 인용 문자는 백틱이며,

ADOQuery1.SQL.Add('SELECT * FROM `AlphaMc111`'); 
하려고 시도
1

열 또는 테이블 이름을 탈출 따옴표를 사용하지 마십시오. 백틱 사용

ADOQuery1.SQL.Add('SELECT * FROM `AlphaMc111`'); 

따옴표는 문자열 구분 기호입니다.

1

문제는 쿼리 자체라고 생각합니다. 그것은 TABLENAME

인용 문자열 만 SQL 구문에서의 TextInput에 필요한 그대로

AlphaMc111 인용 할 필요가 없습니다.

ADOQuery1.SQL.Add('SELECT * FROM AlphaMc111'));