【问题标题】:accuracer : transaction not workingaccuracer:交易不工作
【发布时间】:2015-06-25 07:41:36
【问题描述】:

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

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

我在这里搞砸了什么吗?

【问题讨论】:

  • 那是内存表吗?因为they say 询问Accuracer 仅支持磁盘数据库的事务
  • 不,这是一个磁盘数据库。
  • 查询的inMemory属性也设置为false...
  • 我会要求 AidAim 支持,但这几乎不存在,因为我有各种超过一年的票,其中没有评论。文档很烂,在网络上获得一些帮助几乎是不可能的。

标签: delphi delphi-xe7 accuracerdb


【解决方案1】:

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

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

如果我错了,请纠正我。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多