26. februar 2001 - 10:54Der 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?
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
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.
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.
Synes godt om
Ny brugerNybegynder
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.