为什么此 SQL 查询会出现语法错误

Why does This SQL query give a syntax error

我有以下程序,它是在单击按钮 (button1) 时执行的。在提示登录数据库后,delphi 抛出以下错误:

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;

不要使用引号转义列或 table 名称。使用反引号

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

引号是字符串分隔符。

我认为问题出在查询本身。

AlphaMc111 不需要引用,因为它是一个表名

只有 SQL 语法中的文本输入才需要带引号的字符串。

尝试

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

MySql identifier引号字符是反引号,试试

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