准确性:交易不起作用

时间:2015-06-25 07:41:37

标签: delphi delphi-xe7 accuracerdb

数据库和组件,查询&表来自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;

如果我保留上面的查询,它就可以了。一旦我取消注释线,它就不会。它只是从我的网格中删除记录,但数据库中的数据是完整的。

我在这里乱搞什么?

2 个答案:

答案 0 :(得分:0)

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

" - 清空,重组,删除和重命名交易中涉及的表格"是与事务不兼容的操作。

如果我错了,请纠正我。

答案 1 :(得分:0)

在我看来,COMMIT之前的陈述;没有分号。即一个简单的语法恐怖

相关问题