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

时间:2015-02-05 10:26:22

标签: mysql sql delphi delphi-7

我有以下程序,只需按一下按钮(button1)即可执行。在提示登录数据库后,delphi会抛出以下错误:

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在#Alpha;' AlphaMc'

附近使用正确的语法      

SELECT * FROM' AlphaMc111''在第1行'。流程已停止。使用步骤或运行继续。

以下是程序:

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;

3 个答案:

答案 0 :(得分:1)

不要使用引号来转义列名或表名。使用反引号

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

引号是字符串分隔符。

答案 1 :(得分:1)

我认为问题是查询本身。

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

只有SQL语法中的Textinput才需要带引号的字符串。

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

答案 2 :(得分:0)

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

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