小编Coc*_*cin的帖子

使用事务和数据感知组件编写Delphi数据库应用程序的优选方法

使用事务和数据感知组件编写Delphi数据库应用程序的首选方法是什么?

我必须编写一个访问InnoDB表的客户端应用程序,并在事务中执行一些主要的详细信息.在对交易进行一些研究之后(从一般的观点来看),我谦虚地得出结论,非数据感知组件和手工编码的SQL将是交易的"完美匹配"; 但数据感知组件不会.它们似乎并不是为彼此而制造的.

我真的需要使用事务,但另一方面,我不能只是抛弃数据感知组件,因为它们大大简化了事情.

有人可以赐教我吗?我一直在谷歌搜索它,但我没有找到任何有用的答案.也许是因为我的英语不够好,我的关键词有限.

顺便说一下,我正在使用Delphi 7,目前正在评估UniDAC作为数据访问库.

谢谢.

编辑

用于描述我的问题的一个方面的示例:

想象一下有一个包含2个DBGrids的表单.第一个网格是MasterGrid,上面是这些按钮:添加,编辑和删除.第二个网格是DetailGrid.如果用户单击"添加",则它将如下所示:

  • Connection.StartTransaction
  • Master.Append然后Master.Post然后Master.Edit(所以主数据集有自动增量主键,现在可以编辑)
  • 以模态方式显示编辑表单,用户填写主记录,并使用其他表单添加一些详细记录.
  • 如果用户单击"确定",则应用程序将执行Master.Post和Connection.Commit.如果用户单击"取消",则应用程序将执行Connection.Rollback.

我知道交易应该尽可能短,但你可以看到,交易只是填写表格的用户的速度.

如果我使用的是非数据感知组件,我会根据用户输入自定义插入SQL,然后在StartTransaction和Commit之间执行SQL.所以我可以实现非常短的交易.

编辑2

我感谢你们所有人的亲切参与.我从vcldeveloper中选择答案,因为它是我目前需要的最接近的解决方案.

database delphi transactions delphi-7 data-aware

9
推荐指数
2
解决办法
5232
查看次数

如何使用TDBGrid中的复选框来选择多个记录?

如何使用标准TDBGrid中的复选框来选择多个记录?或许,你对DBGrid的免费/开源姐妹有什么建议,允许任何人轻易做到这一点吗?

谢谢.

delphi checkbox delphi-7 dbgrid

6
推荐指数
1
解决办法
6867
查看次数