Nesto sam gledao kod klase TIBDataSet (i ancestora), vezano za 64-bitni rad sa memorijom.
Evo nekoliko opaski:
1) FCacheSize (i slicne varijable), treba promeniti tip na NativeInt (koji je genericki tip, to jest zavisi od sistema).
2) Za alociranje memorije se poziva funkcija IBAlloc(). Pogledao sam, koriste se procedure ReallocMem() ili GetMem(); treba zameniti funkcijama ReallocMemory() i GetMemory(); ne zaboraviti takodje i FreeMemory(). Move() vec radi sa NativeInt parametrima.
3) E sad, pointer. Nasao u helpu-u da je on takodje sam po sebi genericki tip, odnosno na 64-bitnom sistemu sa 64-bitnom verzijom kompajlera, pointer ce biti takodje 64-bitan. Nemam 64-bitni Delphi instaliran trenutno da probam sizeof(pointer).
To su neke smernice kojih bi se ja drzao ako bih krenuo da menjam/prilagodjavam kod pomenute klase za 64-bitnu memoriju. Istina je da tu sigurno ima jos kvaka za peglanje; medjutim vidim da je NativeInt vec koriscen/naveden na par mesta u tom unit-u.
Sto se tice podrske za TDataSet (override-ovane metode), jedine koje imaju parametre (ili vracaju result) tipa Integer su GetRecordNo i GetRecordCount. Postoji i ovo
procedure ClearCalcFields(Buffer: NativeInt);overload; override;, sto me pogotovo drzi u uverenju da nije nemoguc zadatak.
Puno srece!
Pozz