[firebase-br] Converter TimeStamp em String

Daniel / Tecnobyte temp em tecnobyte.com.br
Qui Abr 14 10:19:40 -03 2005


> Como faço para atribuir à um TEdit o conteúdo de um campo da tabela do
tipo
> TimeStamp? Já tentei como abaixo e não tive sucesso.
>
> edCadastro.text := DateTimeToStr(
> TimeStampToDateTime(sdset.clientes.fieldvalues['DataCadastro']) )
>
> Só que ocorre um erro na conversão no TimeStampToDateTime() informando que
> 'fieldvalues' é do tipo TVariant

1. Porque não acessa a propriedade AsDateTime do objeto TField? Ou seja,
algo como:

SuaVariavelData := DataSet.FieldByName('NomeCampo').AsDateTime;

2. Mas se precisa acessar o conteúdo do campo como uma string, então acesse
a propriedade AsString:

Edit1.Text := DataSet.FieldByName('NomeCampo').AsString;

3. Se mesmo assim, ainda precisar de TimeStamp, então lembre-se que existem
TTimeStamp e TSQLTimeStamp, que são duas estruturas completamente
diferentes:

-------------------
type
  TTimeStamp = record
    Time: Integer;      { Number of milliseconds since midnight }
    Date: Integer;      { One plus number of days since 1/1/0001 }
  end;
------------------
type
  TSQLTimeStamp = packedrecord
    Year : SmallInt;
    Month : Word;
    Day : Word;
    Hour : Word;
    Minute : Word;
    Second : Word;
    Fractions : LongWord;
  end;

Obs: o tipo TSQLTimeStamp é o mesmo que o tipo CTimeStamp usado na limguagem
C++:

typedef struct
{
  INT16 year;
  UINT16 month;
  UINT16 day;
  UINT16 hour;
  UINT16 minute;
  UINT16 second;
  UINT32 fraction;
} CTIMESTAMP;

Atenciosamente.

Daniel P. Guimarães
Tecnobyte informática
www.tecnobyte.com.br





Mais detalhes sobre a lista de discussão lista