我一直在我的Delphi项目上使用InterBase 2020。我之所以选择使用InterBase 2020,是因为它具有Change Views技术,该技术使本地数据库与远程数据库之间的同步过程非常快速且易于实现,反之亦然。欢迎加入Delphi开发局QQ群:32422310 Delphi控件源码下载网站
使用“更改视图”,您无需为数据库的每个表创建触发器(删除后,插入后和更新后),也不需要为数据库的每个表创建一个表来记录更改(插入,更新和删除)的触发器。 本地和远程数据库。
我目前正在测试我所有的东西并将其迁移到Delphi Sidney 10.4(已应用所有三个补丁),并且发现了一个关于带有IBX组件的布尔字段的严重错误(至少在此之前还不知道)。
每当您将布尔字段值从false更改为true并提交更改时。该值始终设置为false。我尝试了许多解决方案但均未成功,直到找到质量中心解决问题的解决方案(临时)
您必须将原始Data.DB.pas添加到您的项目中,然后在Delphi编译选项中关闭代码优化,或更佳的解决方案是在您最喜欢的delphi计划数据库或源数据库的某个位置创建新文件夹。并在delphi选项中以库路径的最高顺序添加此文件夹,因此始终总是首先找到原始版本的Data.DB.pas版本,然后再将其复制到Delphi安装文件夹中并对其进行编辑。 TBooleanField对象的SetAsBoolean过程。基本上是在其以下进行优化关闭和恢复:
{$IFOPT O+}
{$O-}
{$DEFINE OPTIMIZATIONON}
{$ENDIF}
procedure TBooleanField.SetAsBoolean(Value: Boolean);
var
B: WordBool;
begin
if Value then
Word(B) := 1
else
Word(B) := 0;
if FIOBuffer <> nil then
TDBBitConverter.UnsafeFrom<WordBool>(B, FIOBuffer);
SetData(FIOBuffer);
end;
{$IFDEF OPTIMIZATIONON}
{$O+}
{$UNDEF OPTIMIZATIONON}
{$ENDIF}