繁体   English   中英

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

[英]Why does This SQL query give a syntax error

我有以下在单击按钮(button1)时执行的过程。 在提示您登录数据库后,delphi引发以下错误:

您的SQL语法有误; 查看与您的MySQL服务器版本相对应的手册,以获取在“ AlphaMc”附近使用的正确语法

从第1行的'AlphaMc111'选择*。 进程已停止。 使用“步骤”或“运行”继续。

步骤如下:

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;

不要使用引号对列或表名进行转义。 使用反引号

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

引号是字符串定界符。

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

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

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

尝试

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

MySql 标识符引用字符是反引号,请尝试

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM