准确度:事务不工作

accuracer : transaction not working

数据库和组件、查询和 table 来自 Accuracer。

我正在使用一个简单的删除查询:

procedure TMain_Form.Button1Click(Sender: TObject);
begin
DATA_MODULE.QUERY.Close;
DATA_MODULE.QUERY.SQL.Clear;
//DATA_MODULE.QUERY.SQL.Add('START TRANSACTION;');
DATA_MODULE.QUERY.SQL.Add('delete from TABLE where DONE = TRUE');

try
//DATA_MODULE.QUERY.SQL.Add('COMMIT;');
DATA_MODULE.QUERY.ExecSQL;
DATA_MODULE.TABLE.Refresh;
except
//DATA_MODULE.QUERY.SQL.Text := 'ROLLBACK';
//DATA_MODULE.QUERY.ExecSQL;
DATA_MODULE.TABLE.Cancel;
end;
end;

如果我像上面那样保留查询,它就可以工作。一旦我取消注释这些行,它就不会。它只是从我的网格中删除记录,但数据库中的数据完好无损。

我是不是搞砸了什么?

根据此处找到的文档(多用户和多线程、锁定机制和事务)看来: http://www.aidaim.com/products/acr/guide_bde_alternative_client-server_single-file_embedded_bde_replacement_database_delphi_c++builder_kylix/index.php

“- 事务中涉及的清空、重组、删除和重命名表”是与事务不兼容的操作。

如果我错了,请指正。

我想到 COMMIT 之前的语句;没有分号。 IE。一个简单的语法错误