summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/packages/fcl-db/tdb3.pp
blob: 73fa0d52e562d3f742303ada534c85518446479d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
program tdb3;
// Test for bug 12875
{$mode objfpc}{$H+}

uses
  Classes, SysUtils, dbf, db;

var
  Db1: TDbf;
  DateFloat: Double;
  DateStr: String;
begin
  Db1 := TDbf.Create(nil);
  Db1.FilePathFull := ExtractFilePath(ParamStr(0));
  Db1.TableName := 'testdatestr.dbf';
  if not FileExists(Db1.TableName) then
  begin
    Db1.FieldDefs.Add('DateField', ftDate);
    Db1.CreateTable;
  end;

  Db1.Open;
  Db1.Append;
  Db1.Post;

  DateStr :=  Db1.FieldByName('DateField').AsString;
  DateFloat := Db1.FieldByName('DateField').AsFloat;
  if DateFloat<>0 then Halt(1);
  WriteLn('DateStr: "',  DateStr, '" DateFloat: ', DateFloat);

  Db1.Edit;
  Db1.FieldByName('DateField').AsDateTime := Date;
  Db1.Post;
  DateStr :=  Db1.FieldByName('DateField').AsString;
  DateFloat := Db1.FieldByName('DateField').AsFloat;
  WriteLn('DateStr: "',  DateStr, '" DateFloat: ', DateFloat);

  Db1.Edit;
  Db1.FieldByName('DateField').AsString := '';
  Db1.Post;
  DateStr :=  Db1.FieldByName('DateField').AsString;
  DateFloat := Db1.FieldByName('DateField').AsFloat;
  WriteLn('DateStr: "',  DateStr, '" DateFloat: ', DateFloat);
  if not Db1.FieldByName('DateField').IsNull then Halt(1);
  if DateFloat<>0 then Halt(1);

  Db1.Free;
  DeleteFile('testdatestr.dbf');
end.