We're looking at talking to a MSSQL db and an Oracle db backend from the same code, which is where the UniDAC components come in. For the main part I have very quickly managed to get UniDAC talking to both MSSQL and Oracle without issue, however I'm having issues with floats / integers.
In our current oracle database all our ID fields are declared as number(9), these have been migrated into our MSSQL database as numeric(9,0). We need this type due to the precision (length of numbers). In our current delphi implmentation these are represented as TFloatfield which seems to work for MSSQL however when talking to Oracle I get the following error message;
'Expecting Float actual integer'
Within the help that came with trial under the page 'Using UniDAC with Oracle' there is a section on TUniConnection;
Code: Select all
EnableIntegers : When set to True, the provider maps Oracle numbers with precision less than 10 to TIntegerField. If EnableIntegers is set to False, numbers are mapped to TFloatField or XXX.
Code: Select all
fDBSession.SpecificOptions.Values['EnableIntegers'] := 'False';