|
@@ -20,10 +20,7 @@ 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 TestfieldDefinition(AFieldType : TFieldType; ADataSize : integer; out ADS : TDataset; out AFld: TField);
|
|
|
procedure TestcalculatedField_OnCalcfields(DataSet: TDataSet);
|
|
|
|
|
|
published
|
|
@@ -40,6 +37,7 @@ type
|
|
|
procedure TestSupportLargeIntFields;
|
|
|
procedure TestSupportDateFields;
|
|
|
procedure TestSupportTimeFields;
|
|
|
+ procedure TestSupportDateTimeFields;
|
|
|
procedure TestSupportCurrencyFields;
|
|
|
procedure TestSupportBCDFields;
|
|
|
procedure TestSupportFmtBCDFields;
|
|
@@ -2412,25 +2410,16 @@ begin
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
-procedure TTestDBBasics.SetupFieldDefinitionDataset(AFieldType: TFieldType;
|
|
|
- var ADS: TDataset; var AFld: TField);
|
|
|
+procedure TTestDBBasics.TestfieldDefinition(AFieldType : TFieldType; ADataSize : integer; out ADS : TDataset; out AFld: TField);
|
|
|
+
|
|
|
+var i : byte;
|
|
|
+
|
|
|
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 +2431,8 @@ end;
|
|
|
procedure TTestDBBasics.TestSupportIntegerFields;
|
|
|
|
|
|
var i : byte;
|
|
|
- ds : TDataset;
|
|
|
+ FT : TFieldType;
|
|
|
+ DS : TDataset;
|
|
|
Fld : TField;
|
|
|
DbfTableLevel: integer;
|
|
|
|
|
@@ -2455,23 +2445,23 @@ begin
|
|
|
end;
|
|
|
|
|
|
if (uppercase(dbconnectorname)='SQL') and
|
|
|
- (uppercase(dbconnectorparams)='ORACLE') then
|
|
|
+ (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);
|
|
|
+ FT:=ftFmtBCD;
|
|
|
end
|
|
|
else
|
|
|
- begin
|
|
|
- TestfieldDefinition(ftInteger,4,ds,Fld);
|
|
|
- end;
|
|
|
+ FT:=ftInteger;
|
|
|
+
|
|
|
+ TestfieldDefinition(FT,4,DS,Fld);
|
|
|
|
|
|
for i := 0 to testValuesCount-1 do
|
|
|
begin
|
|
|
CheckEquals(testIntValues[i],Fld.AsInteger);
|
|
|
- ds.Next;
|
|
|
+ DS.Next;
|
|
|
end;
|
|
|
- ds.close;
|
|
|
+ DS.Close;
|
|
|
end;
|
|
|
|
|
|
procedure TTestDBBasics.TestSupportSmallIntFields;
|
|
@@ -2614,6 +2604,21 @@ begin
|
|
|
ds.close;
|
|
|
end;
|
|
|
|
|
|
+procedure TTestDBBasics.TestSupportDateTimeFields;
|
|
|
+var i : integer;
|
|
|
+ DS : TDataSet;
|
|
|
+ Fld : TField;
|
|
|
+begin
|
|
|
+ TestfieldDefinition(ftDateTime,8,DS,Fld);
|
|
|
+
|
|
|
+ for i := 0 to testValuesCount-1 do
|
|
|
+ begin
|
|
|
+ CheckEquals(testValues[ftDateTime,i], DateTimeToStr(Fld.AsDateTime, DBConnector.FormatSettings));
|
|
|
+ DS.Next;
|
|
|
+ end;
|
|
|
+ DS.Close;
|
|
|
+end;
|
|
|
+
|
|
|
procedure TTestDBBasics.TestSupportCurrencyFields;
|
|
|
|
|
|
var i : byte;
|