mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 19:39:20 +02:00
* CanModify should be false for fkLookup and fkCalculated fields. Part of bug #13114
* Added test for lookup-fields which currently fails for sqldb because TSQLQuert.Lookup isnt implemented git-svn-id: trunk@12738 -
This commit is contained in:
parent
a1b750bc39
commit
6c06a902e2
@ -527,9 +527,13 @@ begin
|
|||||||
Result:=Not ReadOnly;
|
Result:=Not ReadOnly;
|
||||||
If Result then
|
If Result then
|
||||||
begin
|
begin
|
||||||
Result:=Assigned(DataSet);
|
Result := FieldKind in [fkData, fkInternalCalc];
|
||||||
If Result then
|
if Result then
|
||||||
Result:= DataSet.CanModify;
|
begin
|
||||||
|
Result:=Assigned(DataSet);
|
||||||
|
If Result then
|
||||||
|
Result:= DataSet.CanModify;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -114,6 +114,7 @@ type
|
|||||||
procedure TestRecNo; // bug 5061
|
procedure TestRecNo; // bug 5061
|
||||||
procedure TestSetRecNo; // bug 6919
|
procedure TestSetRecNo; // bug 6919
|
||||||
procedure TestRequired;
|
procedure TestRequired;
|
||||||
|
procedure TestCanModifySpecialFields;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TSQLTestSetup }
|
{ TSQLTestSetup }
|
||||||
@ -505,6 +506,42 @@ begin
|
|||||||
DBConnector.StopTest;
|
DBConnector.StopTest;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestDBBasics.TestCanModifySpecialFields;
|
||||||
|
var ds : TDataset;
|
||||||
|
lds : TDataset;
|
||||||
|
fld : TField;
|
||||||
|
begin
|
||||||
|
lds := DBConnector.GetNDataset(10);
|
||||||
|
ds := DBConnector.GetNDataset(5);
|
||||||
|
with ds do
|
||||||
|
begin
|
||||||
|
Fld := TIntegerField.Create(ds);
|
||||||
|
Fld.FieldName:='ID';
|
||||||
|
Fld.DataSet:=ds;
|
||||||
|
|
||||||
|
Fld := TStringField.Create(ds);
|
||||||
|
Fld.FieldName:='LookupFld';
|
||||||
|
Fld.FieldKind:=fkLookup;
|
||||||
|
Fld.DataSet:=ds;
|
||||||
|
Fld.LookupDataSet:=lds;
|
||||||
|
Fld.LookupResultField:='NAME';
|
||||||
|
Fld.LookupKeyFields:='ID';
|
||||||
|
Fld.KeyFields:='ID';
|
||||||
|
|
||||||
|
lds.Open;
|
||||||
|
Open;
|
||||||
|
AssertTrue(FieldByName('ID').CanModify);
|
||||||
|
AssertFalse(FieldByName('LookupFld').CanModify);
|
||||||
|
AssertFalse(FieldByName('ID').ReadOnly);
|
||||||
|
AssertFalse(FieldByName('LookupFld').ReadOnly);
|
||||||
|
|
||||||
|
AssertEquals(1,FieldByName('ID').AsInteger);
|
||||||
|
AssertEquals('name1',FieldByName('LookupFld').AsString);
|
||||||
|
close;
|
||||||
|
lds.Close;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTestDBBasics.TestSafeAsXML;
|
procedure TTestDBBasics.TestSafeAsXML;
|
||||||
var ds : TDataset;
|
var ds : TDataset;
|
||||||
LoadDs: TBufDataset;
|
LoadDs: TBufDataset;
|
||||||
|
Loading…
Reference in New Issue
Block a user