Avatar billede retep Nybegynder
26. februar 2001 - 10:54 Der er 4 kommentarer og
2 løsninger

Interbase og Delphi

Hejsa :)

Jeg er ved at lave en database i Delphi (5) der skal tilgå en Interbase database, og har et par spørgsmål i den forbindelse.

1: Har I en smart måde at lave booleans på? Synes jeg mangler en boolean type eller MySQL\'s enum - type. Laver I integer(0/1)?

2: Hvordan gemmer I dato og tid? Til PHP scripts plejer jeg at gemme datoer som integers(UNIX time), da det giver nogle fordele når datoen skal skrives til skærmen, men hvordan virker det med Delphi?

Det var vist spørgsmålene for nu ;)
Mvh
Retep
Avatar billede retep Nybegynder
26. februar 2001 - 10:57 #1
Uups, mener selvf. et program i Delphi, der skal tilgå... ;)
Avatar billede martinlind Nybegynder
26. februar 2001 - 11:02 #2
Boolean = SmallInt (0/1)

DateTime = TDateTime / TTime / TDate = ( Double )

Dato\'en er gemt som Heltalet og tiden der er gået pågældene da er så Komma delen, dette har også den fordel at du kan lægge to datoer sammen D1 + D2 eller D1 - D2

/Martin
Avatar billede pellelil Nybegynder
26. februar 2001 - 11:02 #3
Brug SmallInt. Her har du 3 Domains (\"Type definitioner\") som jeg bruger. Den første er \"bare en\" boolean hvor de andre to er er boolean hvor jeg kan bestemme derer initial\'e værdi. Nu jeg er igang får du også for 2 forsk. blobs og for dato/tid:
<SNIP>
CREATE DOMAIN T_BLOB_BIN AS BLOB sub_type 0 segment size 80;
CREATE DOMAIN T_BLOB_TEXT AS BLOB sub_type 1 segment size 80 CHARACTER SET ISO8859_1;

CREATE DOMAIN T_BOOLEAN AS SMALLINT
CHECK(VALUE BETWEEN 0 AND 1);

CREATE DOMAIN T_BOOLEAN_FALSE AS SMALLINT
DEFAULT 0
CHECK(VALUE BETWEEN 0 AND 1);

CREATE DOMAIN T_BOOLEAN_TRUE AS SMALLINT
DEFAULT 1
CHECK(VALUE BETWEEN 0 AND 1);

CREATE DOMAIN T_DATE AS TIMESTAMP;
CREATE DOMAIN T_DATETIME AS TIMESTAMP;
CREATE DOMAIN T_TIME AS TIMESTAMP;
CREATE DOMAIN T_TIMESTAMP AS TIMESTAMP
DEFAULT \'NOW\';
</SNIP>

Som du kan se så er T_DATE, T_DATETIME, T_TIME defineret ens og man kunne nøjes med en af den (da TIMESTAMP både indeholder Dato og Tid). Men hvis jeg i en tabel kun har brug for datoen så vælger jeg at bruge T_DATE således at jeg (overfor mig selv) indikere at jeg kun bruger data-delen. På samme måde vælger jeg en T_TIME hvis jeg kun bruger Tid-delen.
Avatar billede retep Nybegynder
26. februar 2001 - 11:16 #4
Tak for det ;)

Pointene er
Avatar billede retep Nybegynder
26. februar 2001 - 11:17 #5
hmm... fordelt mellem jer... ;)
Avatar billede pellelil Nybegynder
27. februar 2001 - 12:14 #6
Lad mig lige knytte en (forsinket) kommentar. Hvis du andender \"Dialect 1\" så har du til DataTid kun \"typen\" TIMESTAMP hvorimod hvis du anvender \"Dialect 3\" så har du foruden TIMESTAMP også typerne DATE og TIME som henholdsvis er specialiceret til kun at indeholde dato og tid.
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