in the DASchemaModeler I need to automatically manage the fields name in PascalCase (I’m working with a db oracle) instead of having their names all capitalized
For this operation I have to modify and recompile the UniDAC dad driver. I tried to compile without modified but when I use it in DASchemaModeler raise some exception. Example when I open the list of fields of a table ecc ecc
I recompiled the DAD driver with last version of Delphi (10.3.3) and last version of UniDAC (8.1.2).
Are there any particular prerequisites for recompiling a DAD driver?
I see that the bug is still listed as “Needs Triage”, so I’ll share what I found when I ran into this same issue myself a while ago.
The DoGetTableFields method returns a TDAFieldCollection, which descends from TCollection, which uses TList<TCollectionItem> to store its items. The problem is that the implementation of TList<T> changed between 10.2 and 10.3. In 10.2 and earlier versions, TList<T> contains an “array of T” that holds its data. In 10.3 though, TList<T> accesses the array via a pointer contained in a TListHelper record.
The error occurs because the RemObjects.DataAbstract.Unmanaged.dll that the Schema Modeler uses to connect to Delphi-based drivers tries to access the array directly, which works fine in older versions, but fails in 10.3 because the array is not where the dll expects it to be.
On a related note, is there any chance that the source code for the dll could be made available? That would make it easier to diagnose these kinds of issues in the future.