gpt4 book ai didi

delphi - 修复Delphi的错误

转载 作者:行者123 更新时间:2023-12-03 18:41:17 26 4
gpt4 key购买 nike

有谁知道(如果)我如何针对已知的固定错误(特别是与Clientdatasets中的索引有关的QC report #125506)获得针对Delphi的错误修复程序

我了解该问题已在XE7中修复,但我反对(!!!)当我只有XE6几个月的时间时,要支付1,000英镑以上的费用从XE6更新到XE7,我花了一些时间来确定错误和我要从XE6迁移到XE7的唯一原因是要修复该错误(错误结束)!

最佳答案

抱歉将其发布为“答案”,但有一些值得一提的内容可能不适用于评论(或两个)。

正如您可能已经收集到的那样,QC#125506上的“解决方案评论”没有说任何有用的信息,尤其是有关更改内容或更改位置的信息。在DBClient.Pas或Midas.Dll中。我刚刚在XE6和XE7中的DBClient.Pas的源代码上运行了Beyond Compare,并且更改很小:TCustomClientDataSet的声明已添加了本地类声明“ TPersistDataPacket”,并且进行了一些相应的更改,但是他们是否涉及质量控制#125506尚无定论。我想知道是否在这里引用这些更改,但是鉴于可能存在的版权或T&C问题,我决定不这样做。

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

几个明显的建议:


我不确定XE7的试用版是否包含Datasnap的功能,但是鉴于费用,如果可以管理的话,绝对值得“在购买前尝试”。如果不包含Datasnap,您可能仍然会看到是否可以获得XE7 Midas.Dll的副本-曾几何时,Borland-as-was在允许将最新的Midas.Dll与早期版本。可能值得在EMBA新群组中询问这两个观点。
在QC#125506中,报告者似乎在使用CDS IndexFieldNames属性时遇到问题。如果那是您得到的方式,您是否尝试过定义持久性IndexDef?以下代码对我有用(在Sql Server Pubs演示数据库的Authors表上进行了测试)。


动态添加/使用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;

关于delphi - 修复Delphi的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26585183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com