This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information

--Check Constraints aus der Datenbank berücksichtigen

Dokumente für die Entwicklung von und mit JVx.

--Check Constraints aus der Datenbank berücksichtigen

Postby Development@SIB » Wed Mar 31, 2010 3:59 pm



Dieser Artikel ist veraltet - Bitte verwenden Sie unser neues System

https://doc.sibvisions.com





Neben der Berücksichtigung von Default Werten ist die Einschränkung auf "erlaubte Werte" ein weiterer Pluspunkt von JVx.

Die "erlaubten Werte", für Spalten, werden in der Datenbank üblicherweise mit Check Constraints definiert. Diese werden von JVx ausgewertet und als sogenannte erlaubte Werte übernommen.

Die erlaubten Werte wirken sich im User Interface unmittelbar aus und zwar bekommt der Anwender nur die erlaubten Werte in Form von Choice Cell Editoren angeboten.


Anwendungsbeispiel

Aufbauend auf dem Beispiel für Default Werte, definieren wir folgende Check Constraints (Oracle Syntax):

Code: Select all
alter table USERS
  add constraint USER_ACTIVE_CHECK
  check (active IN ('Y', 'N'));

alter table USERS
  add constraint USER_CHANGE_PASSWORD_CHECK
  check (CHANGE_PASSWORD IN ('Y', 'N'));

Folglich dürfen die Felder "ACTIVE" und "CHANGE_PASSWORD" nur "Y" oder "N" enthalten.

Damit im User Interface auch der korrekte Choice Cell Editor verwendet wird, muss dieser natürlich erst bekannt gegeben werden. Das geschieht global und zwar durch den Aufruf von:

Code: Select all
UIChoiceCellEditor.addDefaultChoiceCellEditor(editor);


Für die Werte "Y" und "N" wurde bereits ein Choice Cell Editor vom ApplicationUtil definiert.

Um die Auflösung von Check Constraints zu ignorieren, können folgende Methoden verwendet werden:

Code: Select all
//per instance
users.setAllowedValues(false);

//for all instances (static)
DBStorage.setDefaultAllowedValues(false);


Wenn in der Datenbank keine Check Constraints verwendet werden, können die erlaubten Werte auch über das API gesetzt werden:

Code: Select all
users.open();

//sets allowed/possible values
users.getMetaData().getColumnMetaData("ACTIVE").setAllowedValues(new Object[] {"Y", "N"});
User avatar
Development@SIB
 
Posts: 325
Joined: Mon Sep 28, 2009 1:54 pm

Return to Documentation (DE)