我有以下程序,只需按一下按钮(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;
答案 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`');