2017-09-05 48 views
0

在安裝RAD Studio 10.2 Tokio之後,而不是在以前的版本中,代碼給我一個錯誤。ClientDataSet的IndexName錯誤

當我指定一個有效的索引字符串到的ClientDataSet的財產INDEXNAME(並不總是,但往往,但我不明白爲什麼)的代碼給我這個錯誤:異常消息:

Access violation at address 4DB0D009 in module 'midas.dll'. Read of address 00000000. 

這些是錯誤之前的步驟:

4db0d009 +000 midas.dll 
0079489a +062 ... Datasnap.DBClient TCustomClientDataSet.SwitchToIndex 
00794a72 +07e ... Datasnap.DBClient TCustomClientDataSet.SetIndex 
0079516e +002 ... Datasnap.DBClient TCustomClientDataSet.SetIndexName 

原因是什麼?

+0

請參閱DSintf.Pas中的「CheckDbClient」,以查看Delphi應用程序使用的Midas.Dll實例在註冊表中的註冊位置。然後,嘗試註冊一個不同的版本,看看你是否仍然遇到同樣的問題。 – MartynA

+0

感謝您的回覆,但我嘗試和我得到同樣的錯誤... –

回答

0

埋在臭名昭着的midas.dll中的這些原因充滿了bug。恐怕你別無選擇,只能嘗試不同的midas.dll版本或修復它的錯誤

0

我做了一些測試。 Delphi XE6中的相同代碼沒有任何問題。 因此,我用Delphi XE6的midas改變了RAD Studio 10.2 Tokio的midas.dll,但代碼仍然給我錯誤。

0

問題是在DataSnap.DBClient的SwitchToIndex過程中,我想;在行上:

Status := FDSCursor.UseIndexOrder(MarshaledAString(MetaDataFromUnicode(IndexName)));