【发布时间】:2013-03-15 09:12:20
【问题描述】:
我使用下一个代码在非自动通信连接上发布一些记录:
ZConnection1.AutoCommit := False;
try
ZTable1.Insert;
ZTable1.FieldByName('name').AsString := 'John Doe';
ZTable1.Post;
ZConnection1.Commit;
except
ZConnection1.Rollback;
end;
当我运行此代码时,我的数据库中没有保存任何内容。
在我尝试下一个代码之后...
ZConnection1.AutoCommit := False;
with ZQuery1 do begin
SQL.Text := 'INSERT INTO mytable (name) values ("John Doe")';
ExecSQL;
SQL.Text := SQL.Text + 'COMMIT' ;
try
ExecSQL;
except
SQL.Text := 'ROLLBACK';
ExecSQL;
end;
end;
... 一切都很完美。
我在第一种情况下做错了什么?我使用 Delphi6、MySql、Zeos 库和 InnoDB 表。
【问题讨论】:
-
在调用您显示的代码之前,您是否真正激活/打开了表格?
-
是的,都打开了。我相信如果不活动的表 Delphi 将其报告为错误。我没有收到任何错误消息。
-
是的,但是您在尝试中插入了插入内容,但没有提及确切的错误消息...