arrow_back history picture_as_pdf This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ~~Title: Considering Check Constraints from the Database~~ Neben der Berücksichtigung von [[de:jvx:server:storage:dbdefault_values|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 [[jvx:server:storage:dbdefault_values|Default Values]], definieren wir folgende Check Constraints (Oracle Syntax): <file sql> 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')); </file> 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: <file java> UIChoiceCellEditor.addDefaultChoiceCellEditor(editor); </file> 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: <file java> //per instance users.setAllowedValues(false); //for all instances (static) DBStorage.setDefaultAllowedValues(false); </file> Wenn in der Datenbank keine Check Constraints verwendet werden, können die erlaubten Werte auch über das API gesetzt werden: <file java> users.open(); //sets allowed/possible values users.getMetaData().getColumnMetaData("ACTIVE").setAllowedValues(new Object[] {"Y", "N"}); </file>