* fcl-db: tests: adjust TTestDBBasics.TestSupportIntegerFields to reflect that Oracle does not map integer fields to ftInteger but to ftFMTBCD

git-svn-id: trunk@27987 -
This commit is contained in:
reiniero 2014-06-17 10:21:51 +00:00
parent 244f65525b
commit 4d92b003a7

View File

@ -20,6 +20,9 @@ type
TTestDBBasics = class(TDBBasicsTestCase)
private
procedure SetupFieldDefinitionDataset(AFieldType: TFieldType;
var ADS: TDataset; var AFld: TField);
// Sets up dataset and verifies field type and data size match expected values
procedure TestfieldDefinition(AFieldType : TFieldType;ADatasize : integer;var ADS : TDataset; var AFld: TField);
procedure TestcalculatedField_OnCalcfields(DataSet: TDataSet);
@ -2409,16 +2412,25 @@ begin
end;
end;
procedure TTestDBBasics.TestfieldDefinition(AFieldType : TFieldType;ADatasize : integer;var ADS : TDataset; var AFld: TField);
var i : byte;
procedure TTestDBBasics.SetupFieldDefinitionDataset(AFieldType: TFieldType;
var ADS: TDataset; var AFld: TField);
begin
ADS := DBConnector.GetFieldDataset;
ADS.Open;
AFld := ADS.FindField('F'+FieldTypeNames[AfieldType]);
{$ifdef fpc}
if not assigned (AFld) then
Ignore('Fields of the type ' + FieldTypeNames[AfieldType] + ' are not supported by this type of dataset');
{$endif fpc}
end;
procedure TTestDBBasics.TestfieldDefinition(AFieldType : TFieldType;ADatasize : integer;var ADS : TDataset; var AFld: TField);
var i : byte;
begin
SetupFieldDefinitionDataset(AFieldType,ADS, AFld);
{$ifdef fpc}
if not assigned (AFld) then
Ignore('Fields of the type ' + FieldTypeNames[AfieldType] + ' are not supported by this type of dataset');
@ -2442,7 +2454,17 @@ begin
Ignore('TDBF: only Visual Foxpro and DBase7 support full integer range.');
end;
TestfieldDefinition(ftInteger,4,ds,Fld);
if (uppercase(dbconnectorname)='SQL') and
(uppercase(dbconnectorparams)='ORACLE') then
begin
// Oracle: NUMERIC fields that map to ftFMTBCD are used; these do not map to ftInteger
// We still want to run the value tests below, so set up things manually:
SetupFieldDefinitionDataset(ftInteger,DS,Fld);
end
else
begin
TestfieldDefinition(ftInteger,4,ds,Fld);
end;
for i := 0 to testValuesCount-1 do
begin