Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Default Wert bei Datenbankfeld | Datentyp Boolean | Firebird (https://www.delphipraxis.net/135407-default-wert-bei-datenbankfeld-%7C-datentyp-boolean-%7C-firebird.html)

f4k3 10. Jun 2009 12:23

Datenbank: Firebird • Version: 2.1 • Zugriff über: IBExpert Personal

Default Wert bei Datenbankfeld | Datentyp Boolean | Firebird
 
Moin Moin liebe DPler ;)

-------------------------------------------------------------------------------------------------------------------------

Frage: Default Wert bei Datenbankfeld

Und zwar gibts bei Database Workbench 3 Lite for Firebird die Möglichkeit einem Feld einen "DEFAULT"-Wert zuzuweisen wenn
bei INSERT oder UPDATE der Wert des Feldes nicht übergeben wurde.

Mögliche Werte sind ...
  • CURRENT_CONNECTION
  • CURRENT_DATE
  • CURRENT_ROLE
  • CURRENT_TIME
  • CURRENT_TIMESTAMP
  • CURRENT_TRANSACTION
  • CURRENT_USER
  • NOW
  • NULL
  • TODAY
  • TOMORROW
  • USER
  • YESTERDAY

Jetzt arbeit ich aber grad mit IBExpert und da gibts einen Punkt DEFAULT SOURCE ...
nun meine Frage ob ich die aufgelisteten Werte der DEFAULT SOURCE zuweisen kann oder gibt
es eine andere Möglichkeit?

-------------------------------------------------------------------------------------------------------------------------

Frage: Datentyp Boolean bei Firebird

Ich hab ja in IBExpert die Möglichkeit Checks zu definieren ...
da es bei Firebird keinen Boolean Datentyp gibt hab ich die frage, ob es eventuell möglich ist mit einem Check zu überprüfen
ob der übergebene Wert 'False' oder 'True' für das angegebene Feld ist ...

Das Feld soll dann eben vom Typ 'Varchar(5)' sein ...

Nur hab ich keine Ahnung was als Parameter oder P-SQL da einzutragen ist ... sprich ich hab keine Ahnung von der Syntax :P

Aber ich schätze mal dass es ein paar leudchen gibt, die vor dem gleichen Problem waren oder einen Ideenanstoss hätten ;)


Vielen Dank für eure Posts

Euer f4k3 ;)

mkinzler 10. Jun 2009 12:26

Re: Default Wert bei Datenbankfeld | Datentyp Boolean | Fire
 
Ein Byte oder ein Char sollte reichen
Im ersten Fall wäre default 0 oder ein (je nach dem ob True oder False Standard sein soll) im zweiten 'T' oder 'F'

DeddyH 10. Jun 2009 12:28

Re: Default Wert bei Datenbankfeld | Datentyp Boolean | Fire
 
Oder man erstellt sich eine Domäne (ob die nun VARCHAR oder SMALLINT ist, muss man selbst entscheiden).

f4k3 10. Jun 2009 12:44

Re: Default Wert bei Datenbankfeld | Datentyp Boolean | Fire
 
Zitat:

Zitat von mkinzler
Ein Byte oder ein Char sollte reichen
Im ersten Fall wäre default 0 oder ein (je nach dem ob True oder False Standard sein soll) im zweiten 'T' oder 'F'

mhm ... dass wär jetzt aber eine Variante mit einer DEFAULT SOURCE wenn ichs richtige verstehe oder?
Also eigentlich keine Überprüfung welcher Wert übergeben wurde?

Ich steh nämlich vor dem Problem ... wenn der Admin der Anwendung die Benutzerrechte
festlegt ... gibts ne Reihe von Checkboxen die quasi die Rechte visualisieren.

Wenn ich nun ein INSERT oder UPDATE Statement ausführe und als "Wert" im Statement "chbAdmin.Checked" übergebe ... indem
steht ja der boolsche Wert "True"/"False" ... und wenn dieser Fall eintritt dass so ein Wert übergeben wird ...
dass ich dann quasi auf Seite der Datenbank prüfe welcher Wert übergeben wurde und dann ein Byte 0 oder 1 (bzw. Char 'F' oder 'T') ins Feld eintrage ...

Dass wär zumindest für mich programmiertechnisch schön ... ;) weil sonst müsste ich wenn ich das Statement zur Laufzeit einem TZQuery zuweise ... vorher abprüfen ob die 25 Checkboxen .Checked sind und je nachdem dass ins Statement einbauen ... find
ich ein wenig fummelig ...

mkinzler 10. Jun 2009 12:58

Re: Default Wert bei Datenbankfeld | Datentyp Boolean | Fire
 
Zitat:

mhm ... dass wär jetzt aber eine Variante mit einer DEFAULT SOURCE wenn ichs richtige verstehe oder?
Nein direkt als Wert
Du kannst bei den CheckDBBoxen den Wert für wahr oder falsch setzen (.ValueChecked / .ValueUnchecked)

borwin 10. Jun 2009 13:11

Re: Default Wert bei Datenbankfeld | Datentyp Boolean | Fire
 
Ich habe mir für solche Fälle eine eigene Domain erstellt.

SQL-Code:
CREATE DOMAIN DBOOLEAN AS
SMALLINT
DEFAULT 0
CHECK (VALUE IN (0,1));
Die entsprechenden Felder in meiner Tabelle bekommen dann die Domain zugewiesen. So ist dann sichergestellt das nur 0, 1 oder auch ggf. NULL drinsteht.
Das mußt Du für Deine Gegebenheiten anpassen.

Gruß Hartmuth


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz