Forum > Databases

TbufDataSet, formating a date field



how could ia format a field date in TbufDataSet

As with any other dataset: add a field to FieldDefs with the proper type (ftDate, ftTime, ftTimeStamp, ...). You can set it or read it back with Field.AsDateTime.

@lucamar, i wanted to say:

formatdate like 'dd/mm/yyyy' not field type.

Use the 'DisplayFormat' property of the field. You must cast the field to TDateField, TDateTimeField, or TTimefield to have access to this property.

The following code works with a TBufDataset, TDataSource and a TDBGrid on a form (linked in the usual way):

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---procedure TForm1.FormCreate(Sender: TObject);var  i: Integer;  F: TField;begin  BufDataset1.FileName := 'data.db';  if not FileExists(BufDataset1.FileName) then  begin    BufDataset1.FieldDefs.Add('date', ftDate);    BufDataset1.CreateDataset;    BufDataset1.Open;    for i := 0 to 100 do      BufDataset1.AppendRecord([Random(365) + EncodeDate(2020, 1, 1)]);  end;  BufDataset1.Open;   F := BufDataset1.FieldByName('date');  if F is TDateField then    TDateField(F).DisplayFormat := 'yyyy-mm-dd';end;  


[0] Message Index

Go to full version