[Borland/SQL] Datum formaat

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 12:38

hneel

denkt er het zijne van

Topicstarter
Ik ben bezig met een applicatie in Cbuilder in combinatie met een paradox database. Het probleem is dat de query de datum altijd op z'n amerikaans afdrukt. En dat wil ik natuurlijk niet.

B.v.
SQL:
1
2
3
SELECT T."Naam",
       T."Datum"
FROM "Transacties.DB" T


Nu heb ik na lang lang zoeken een workaround gevonden:
SQL:
1
2
3
4
SELECT T."Naam",
       T."Datum",
       CAST(T."Datum" AS VARCHAR(10)) AS T."DatumF"   
FROM "Transacties.DB" T


Waarempel: de datum komt er nu ook als "dd-mm-yyyy" uit. Bruikbaar, ook al kan ik nog steeds geen "yyy-mm-dd" of iets anders kiezen.

Maar nu loop ik tegen de volgende hobbel aan. Ik wil de output van de query tonen in een TDBGrid component, en die slikt dit niet.

Hoe kan ik dit nu voor elkaar krijgen?

PS, ik gebruik C-builder, maar waarschijnlijk werkt het in Delphi op een zelfde manier.
En denk er aan dat Paradox een heel beperkte SQL taal gebruikt. Er zijn vast een hoop oplossingen in standaard SQL te verzinnen die in Paradox niet zullen gaan werken. Ik zoek echt iets wat toegesneden is op paradox en borland.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
hneel schreef op dinsdag 01 februari 2011 @ 23:42:
Ik ben bezig met een applicatie in Cbuilder in combinatie met een paradox database. Het probleem is dat de query de datum altijd op z'n amerikaans afdrukt.
hneel schreef op dinsdag 01 februari 2011 @ 23:42:
Waarempel: de datum komt er nu ook als "dd-mm-yyyy" uit. Bruikbaar, ook al kan ik nog steeds geen "yyy-mm-dd" of iets anders kiezen.
Ik denk dat je eens even moet kijken naar (o.a.):

Getallen en talstelsels FAQ: Representatie en opslag / Getallen en talstelsels FAQ: Datums

Kort: Er staat gewoon een "datum" in je DB (als het goed is althans, tenzij je een varchar hebt gebruikt ofzo). De weergave daarvan (be it yyyy-mm-dd of mm/dd/yyyy of mm-dd-yy of...) zal de DB roesten. De tool waarin je (nu) de resultaten van je query bekijkt kiest "toevallig" (schijnbaar) een en-US formaat ofzo. Maar de waarde verandert daar niet mee.

Je moet het formaat helemaal niet in een query "forceren". Alles wat je daarmee doet is een perfectly fine datetime veld omturnen in een string. Laat de representatie over aan je *drumroll*.... presentatielaag; je UI dus (lees: je grid). Dus: Zorg dat je je grid een datetime voert door met je vingers van een cast af te blijven en laat de grid zich bekommeren om de formattering van de waarde die 'ie krijgt uit je resultset. Hoe je dat precies voor een grid regelt in CBuilder durf ik niet te zeggen.

[ Voor 38% gewijzigd door RobIII op 01-02-2011 23:58 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 12:38

hneel

denkt er het zijne van

Topicstarter
OK, ik zal me dus op die TDBGrid moeten focussen. Ik had daar nog niet specifiek op gegoogled.

Ik heb al wel ontdekt dat als je die zonder ingestelde kolommen gebruikt, die CAST dan wel goed weergegeven wordt. Maar met voorgedefinieerde kolommen crasht hij daar op.