【发布时间】:2010-10-16 04:44:14
【问题描述】:
Delphi TAdoQuery 是否可以一次执行多个插入,还是必须分别执行每个语句?我想做的是这样的:
AdoQuery.SQL.Clear;
AdoQuery.SQL.Add('INSERT INTO user VALUES (1, "User 1");');
AdoQuery.SQL.Add('INSERT INTO user VALUES (2, "User 2");');
AdoQuery.SQL.Add('INSERT INTO user VALUES (3, "User 3");');
AdoQuery.ExecSQL;
AdoQuery.Close;
这可能吗?执行此操作时,我从 MySQL 收到错误消息。我也尝试添加 BEGIN;和结束;围绕查询,但这也不起作用。
编辑:我想这样做是因为当我在 for 循环中执行插入时,看起来 > 10 个查询需要很长时间。我假设像上面一样添加它们会加快速度。有谁知道插入之间是否需要 AdoQuery.Close 调用?
【问题讨论】:
-
不是 Close 调用,而是插入之间需要 ExecSQL 调用。如果您想要更多“类似脚本”的能力,请改为查看 TAdoCommand。它可能更适合您想要做的事情。否则下面的答案在查询中使用参数并使用不同的参数值重复执行它是要走的路。
标签: delphi