it can save 3556856671915480078 as value and display right, only can't filter
the same code change to Tadodataset in delphi,the result is right
uses VirtualTable(unidac) can get right result
var
Fdb:TVirtualTable;
begin
Fdb:=TVirtualTable.Create(nil);
Fdb.FieldDefs.Add('prjid',ftlargeint);
Fdb.FieldDefs.Add('no',ftstring,10);
Fdb.active:=True;
Fdb.AppendRecord([3556856671915480078,'1']);
Fdb.AppendRecord([3556856671915480078,'2']);
Fdb.AppendRecord([3556856671915480017,'3']);
Fdb.Filter:='prjid=3556856671915480078';
Fdb.Filtered:=True;
ds.DataSet:=fdb;
end;