webForumDet fria alternativet

Delphi Access problem

2 svar · 223 visningar · startad av urban_hahne

urban_hahneMedlem sedan maj 2003153 inlägg
#1

I en accessdatabas har jag definierat ett fält "tid" av typen Datum/tid/långt tidsformat ex: 18:35:12
samt "datum" som kort datum ex: 2003-12-02
Kontroll i databasen med access visar att de är lagrade korrekt enligt exemplen.
När jag kopplar ett datafält tex dbgrid eller dbedit till fältet "tid" så visas årtalet 1899-12-30 framför tiden i fältet "tid" med ett blanktecken emellan ex. 1899-12-30 17:45:03.
Årtalet som visas i fältet "tid" är det samma i alla fält oavsett klockslag och är något som Delphi lägger till av någon orsak. Jag använder Delphi ver 6.
Jag har provat med kort tidsformat i databasens fält "tid" men samma fel kvarstår.
Årtalet i fältet "datum" helt visas korrekt.

HardrockerMedlem sedan nov. 2003277 inlägg
#2

TDatetime är egentligen ett flyttal där heltalsdelen är antal dagar sedan 1899-12-30 och decimaldelen är hur stor del av dagen som har gått.
Det betyder att 2003-11-20 12:00 lagras som 37945,5.
En "tom" datetime variabel är default 0, alltså 1899-12-30.

Testa att lägga in en rad i databasen som innehåller t.ex. dagens datum så ska det nog fungera.

urban_hahneMedlem sedan maj 2003153 inlägg
#3

Problemet med time

Så här funkade det bra med datum.
start kod:

procedure TAnnonsMainForm.Table1AfterOpen(DataSet: TDataSet);
begin

TDateTimeField(DataSet.Fields[nr]).DisplayFormat := 'tt';
DataSet.Fields[nr].EditMask := '00:00:00';
end;

slut kod.
där nr är indexnummret på datafältet tid.

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb