Avatar billede iakob Nybegynder
04. februar 2002 - 17:37 Der er 14 kommentarer og
1 løsning

DATE i MFC Visual C++ v6 (ActiveX)

Jeg er ved at lave en Active XControl, som via et interface skal kunne gå på en database (MSSQL Server 2000) og kalde en procedure.

Min kontrol skal også kaldes fra en SQL procedure.

Interfacet skal tage to datoer (en fra- og en tildato), som jeg lige nu har defineret til typen DATE (internt i frameworket bliver det til VTS_DATE). Det er så vidt jeg kan forstå et tal, der tæller den tid der er gået siden ruder konge var knægt (midnat 30. december 1899).

Hvordan får jeg det konverteret til en CTime?

Jeg har med held forsøgt mig med at konvertere det til en COleDateTime. Problemet er at i værktøjet ActiveX Control Test Container, så kan jeg angive argumenterne på formen "00:00:00" og det oversættes til et tidspunkt.

Jeg er interesseret i datoen.

Har jeg valgt den forkerte type som parameter? Hvis ja, hvad skulle jeg så have valgt (ud fra viden om at min kontrol skal kaldes via en SQL Procedure)?
Avatar billede jpk Nybegynder
04. februar 2002 - 18:17 #1
Med dit COleDateTime objekt (herunder kaldet OleDateTime) kan du gøre følgende:
SYSTEMTIME sysTime;
OleDateTime.GetAsSystemTime(&sysTime)
CTime Time(sysTime);
Avatar billede iakob Nybegynder
05. februar 2002 - 11:30 #2
Mit problem er først og fremmest at ActiveX Control Test Container kun tillader mig at inddatere et tidspunkt (på formen "00:00:00").

Men jeg skal bruge en dato.
Avatar billede jpk Nybegynder
05. februar 2002 - 12:27 #3
Hmm, jeg kan nu ikke forestille mig at det er din ActiveX Control Test Container der sætter den begrænsning!!!

Har du lavet en kontrol der har et felt til indtastning af en dato eller hvad?
Hvis indholdet fra feltet skal i en DB, skal kolonnes format naturligvis være korrekt i DB'en.
Avatar billede iakob Nybegynder
05. februar 2002 - 12:33 #4
Jeg har lavet et interface ved at knytte en metode til mit objekt via classwizard. Da jeg definerede metoden, så angav jeg DATE som typen på mine datoer.

Af een eller anden grund så viser det sig altså som et tidsfelt i ActiveX control test container, når jeg forsøger at kalde min metode (invoke)
Avatar billede jpk Nybegynder
05. februar 2002 - 12:40 #5
Jeg er ikke helt med...
Mener du, at du har lavet en member variable af typen DATE for en edit control på din kontrol?
Avatar billede iakob Nybegynder
05. februar 2002 - 12:47 #6
Jeg har ikke noget edit felt. Mit objekt har ikke noget grafisk interface.

Jeg har lavet en procedure (dvs en metode på et interface på COMobjektet), som tager to argumenter af typen DATE.

Editfeltet jeg kan indtaste i findes i ActiveX Control Test Containeren, og den har som sagt et underligt format (tid, men ikke dato).
Avatar billede jpk Nybegynder
05. februar 2002 - 13:00 #7
Okay, har du prøvet at lave argumenterne om til COldeDateTime?
Avatar billede iakob Nybegynder
05. februar 2002 - 13:12 #8
Nej.. Men jeg har prøvet at konvertere dem i procedure kroppen fra DATE til COldDateTime
Avatar billede iakob Nybegynder
05. februar 2002 - 13:14 #9
Jeg kan ikke i class wizarden vælge COleDateTime
Avatar billede jpk Nybegynder
05. februar 2002 - 13:26 #10
Tja, det er selvfølgelig kedeligt hvis du ikke kan teste den i Test Containeren, men du kan jo bare lave et simpelt projekt, hvor du bruger den for at teste...
Avatar billede iakob Nybegynder
05. februar 2002 - 15:11 #11
Hm... Spørgsmålet er jo stadig om det er den forkerte datatype jeg har valgt.
Avatar billede jpk Nybegynder
05. februar 2002 - 15:15 #12
Forkerte..?
en VT_DATE kan jo indeholde en fuldbyrdig dato, så hvis det er det du skal bruge, er den jo ikke forkert!
Avatar billede iakob Nybegynder
05. februar 2002 - 15:18 #13
Jo.. Men hvorfor viser ActiveX Control Test Containeren så kun tiden og hvad kan jeg gøre for at få den til at vise hele datoen?
Avatar billede jpk Nybegynder
05. februar 2002 - 15:24 #14
Jeg ved det desværre ikke...
Det kan være en bug!
Avatar billede iakob Nybegynder
03. juni 2003 - 08:43 #15
Jeg lukker spørgsmålet ned
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester