代码之家  ›  专栏  ›  技术社区  ›  delphirules

如何使用TSQLConnection.Execute发送多个插入语句

  •  0
  • delphirules  · 技术社区  · 2 年前

    我正在使用 TSQLConnection 以连接到远程MySql数据库。

    我想寄几个 INSERT 语句,而不是一个接一个地发送(这将非常缓慢)。

    但是,当我尝试这样做时,我从服务器收到了一个错误。

    如果我只发送一条语句,如下图所示,它会起作用:

    mySQLConnection.Execute('insert into table values (1,100)',nil);
    

    但是,如果我这样发送:

    mySQLConnection.Execute('insert into table values (1,100);insert into table values (2,200);insert into table values (3,300)',nil);
    

    服务器将引发异常:

    项目xxx.exe引发了异常类TDBXError,消息为“您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在附近使用的正确语法。。。

    有什么办法让它发挥作用吗?在MySQL工作台上,相同的SQL语句 插入 s会起作用,但在Delphi中不行。

    1 回复  |  直到 2 年前
        1
  •  2
  •   Barmar    2 年前

    每次呼叫 .execute() 只能执行一个查询。如果要插入多行,请在 VALUES

    mySQLConnection.execute('insert into table values (1,100), (2,200), (3,300)',nil);