获取Delphi的错误修复程序

时间:2014-10-27 10:11:21

标签: delphi

有没有人知道如何(如果)我可以获取Delphi的已知修复错误修复程序(特别是与Clientdatasets中的索引相关的QC report #125506

我知道它已经在XE7中得到修复,但我反对(!!!)支付1000英镑+从XE6更新到XE7,当时我只有XE6几个月,我花时间识别我从XE6迁移到XE7的唯一原因是修复错误(咆哮)!

1 个答案:

答案 0 :(得分:1)

将此作为"答案"发布的道歉但是有一些值得一提的东西在评论中不太适合(或者两个)。

正如您可能已经收集的那样,"决议评论"在QC#125506上没有说任何有用的东西,特别是关于改变了什么或在哪里例如在DBClient.Pas或Midas.Dll中。我刚刚在XE6& amp;中找到了DBClient.Pas的来源Beyond Compare。 XE7,变化很小:TCustomClientDataSet的声明有一个本地类声明" TPersistDataPacket"添加到它并有一些相应的变化,但他们是否承担QC#125506是不可能的。我想知道引用这些变化,但决定不考虑可能的版权或T& C问题。

XE6和XE7中的MidasLib.Pas版本相同,但MidasLib.Dcu的32位版本构建的大小略有增加,从241447增加到241646字节。奇怪的是,Midas.Dll实际上已经缩小了,从451960减少到437632字节。

一些明显的建议:

  1. 我不确定XE7的试用版是否包含Datasnap的东西,但考虑到费用,它肯定是值得的"在购买之前尝试"如果你能管理它。如果它不包括Datasnap,你可能会看到你是否可以获得XE7 Midas.Dll的副本 - 曾几何时Borland-as-was在允许最新的Midas.Dll方面相当自由与早期版本一起使用。可能值得在EMBA新组中询问这两点。

  2. 在QC#125506中,记者似乎在使用CDS IndexFieldNames属性时遇到了问题。如果你得到它的方式,你是否尝试过定义持久的IndexDef?以下代码适用于我(在Sql Server Pubs演示数据库的Authors表上测试)。

  3. 动态添加/使用IndexDef。

    procedure TDefaultForm.AddIndex(AFieldName: String; CaseInsensitive: Boolean);
    var
      AIndexDef : TIndexDef;
      AIndexName : String;
      Options : TIndexOptions;
      BM : TBookmark;
    begin
      if CDS1.IndexDefs.GetIndexForFields(AFieldName, CaseInsensitive) = Nil then begin
        BM := CDS1.GetBookmark;
        try
          CDS1.DisableControls;
          AIndexName := 'By' + AFieldName;
          Options := [];
          if CaseInsensitive then
            Options := Options + [ixCaseInsensitive];
          AIndexDef := TIndexDef.Create(CDS1.IndexDefs, AIndexName, AFieldName, Options);
          CDS1.IndexName := AIndexName;
        finally
          CDS1.GotoBookmark(BM);
          CDS1.FreeBookmark(BM);
          CDS1.EnableControls;
        end;
      end;
    end;
    
    procedure TDefaultForm.btnAddClick(Sender: TObject);
    begin
      AddIndex('au_lname', True);
    end;