<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://doc.sibvisions.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://doc.sibvisions.com/feed.php">
        <title>Documentation jvx:server:storage</title>
        <description></description>
        <link>https://doc.sibvisions.com/</link>
        <image rdf:resource="https://doc.sibvisions.com/lib/tpl/material/images/favicon.ico" />
       <dc:date>2026-04-24T07:21:08+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/abstract_memory?rev=1593177740&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/custom_sql?rev=1595423962&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/datasourcehandler_dbcredentials?rev=1592221298&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/dbcheck_constraints?rev=1593437565&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/dbdefault_values?rev=1593437494&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/filter?rev=1593433869&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/insteadof?rev=1731925417&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/metadata?rev=1593177699&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/metadata_caching?rev=1595423442&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/sort?rev=1592222267&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/trigger?rev=1593437675&amp;do=diff"/>
                <rdf:li rdf:resource="https://doc.sibvisions.com/jvx/server/storage/userdefined?rev=1592221572&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://doc.sibvisions.com/lib/tpl/material/images/favicon.ico">
        <title>Documentation</title>
        <link>https://doc.sibvisions.com/</link>
        <url>https://doc.sibvisions.com/lib/tpl/material/images/favicon.ico</url>
    </image>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/abstract_memory?rev=1593177740&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-26T13:22:20+00:00</dc:date>
        <title>Using AbstractMemStorage</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/abstract_memory?rev=1593177740&amp;do=diff</link>
        <description>Sometimes, you don't have a database accessible, but you need a storage for temporary or session relevant data. In that case, you could use an AbstractMemStorage. This storage stores data in an internal MemDataBook. It fully implements IStorage interface and allows clients to access data via databooks.</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/custom_sql?rev=1595423962&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-22T13:19:22+00:00</dc:date>
        <title>Using Custom SQL Statements</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/custom_sql?rev=1595423962&amp;do=diff</link>
        <description>JVx has very useful database support based on DBStorage and DBAccess. The DBStorage is very powerful and supports automatic foreign, primary, and unique key detection. It reads allowed (check constraints) and default values automatically from your database table.</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/datasourcehandler_dbcredentials?rev=1592221298&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-15T11:41:38+00:00</dc:date>
        <title>DataSourceHandler and DBCredentials</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/datasourcehandler_dbcredentials?rev=1592221298&amp;do=diff</link>
        <description>Simple integration of multiple databases is an easy task with JVx. Configuration is usually completed via the application's config.xml file. This allows for easy access in the life cycle objects:


&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;application&gt;
  &lt;securitymanager&gt;
    &lt;class&gt;com.sibvisions.rad.server.security.DBSecurityManager&lt;/class&gt;
    &lt;database datasource=&quot;mydb&quot; /&gt;
  &lt;/securitymanager&gt;
 
  &lt;datasource&gt;
    &lt;db name=&quot;mydb&quot;&gt;
      &lt;url&gt;jdbc:oracle:thin:@localhost:1521:mydb&lt;/url&gt;
      &lt;…</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/dbcheck_constraints?rev=1593437565&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-29T13:32:45+00:00</dc:date>
        <title>Considering Check Constraints From the Database</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/dbcheck_constraints?rev=1593437565&amp;do=diff</link>
        <description>In addition to the use of default values, the restriction to “allowed values” is another advantage of JVx.

The “allowed values” for columns are usually defined in the database using check constraints. These are evaluated by JVx and assumed as allowed values.</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/dbdefault_values?rev=1593437494&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-29T13:31:34+00:00</dc:date>
        <title>Considering Database Default Values</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/dbdefault_values?rev=1593437494&amp;do=diff</link>
        <description>Behind a well-designed database application, there is always a well-designed data model. This model ideally fulfills the third NF, or at least a reasonable medium between second and third NF. In the standard case, the user interface visualizes the data model and allows the collection of master- and transaction data.</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/filter?rev=1593433869&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-29T12:31:09+00:00</dc:date>
        <title>Data Filtering on the Server Side</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/filter?rev=1593433869&amp;do=diff</link>
        <description>Usually the data for the client UI is limited on the server side, so that the client only receives data it needs. One efficient way to limit data is to use views in the respective database. This method, however, leaves us dependent on the database, and not all databases offer this feature.</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/insteadof?rev=1731925417&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-18T10:23:37+00:00</dc:date>
        <title>jvx:server:storage:insteadof</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/insteadof?rev=1731925417&amp;do=diff</link>
        <description>If you're an Oracle user, you'll know that it's possible to update views with insteadOf triggers. An insteadOf trigger will do the CRUD operation(s), and it will be called with new/changed values like any other trigger. It's like a procedure that does CRUD programatically. It's a simple concept but not available in all databases.</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/metadata?rev=1593177699&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-26T13:21:39+00:00</dc:date>
        <title>User-Defined ColumnMetaData and ColumnDefinition</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/metadata?rev=1593177699&amp;do=diff</link>
        <description>Metadata are an important element of JVx' model. Every column used in DataBook or Editor has a ColumnDefinition internally. This controls which editor will be used (date, text, number, selection, etc.), the datatype of the column, how many characters can be entered, and the like. A ColumnDefinition is created from metadata. The metadata are generated on server side.</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/metadata_caching?rev=1595423442&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-22T13:10:42+00:00</dc:date>
        <title>jvx:server:storage:metadata_caching</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/metadata_caching?rev=1595423442&amp;do=diff</link>
        <description>Databooks at the client already allow for the caching of metadata to minimize communication with the server. However, server-side storage updates metadata each time data is accessed. During productive use, this is unnecessary overhead that we would prefer to avoid.</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/sort?rev=1592222267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-15T11:57:47+00:00</dc:date>
        <title>Standard Sorting on the Server Side</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/sort?rev=1592222267&amp;do=diff</link>
        <description>User-friendly UIs prepare and display data in clearly arranged form. This includes clear and relevant sorting of data.

There are several different ways to sort data, and sorting can happen at various tiers. The client (client tier) can handle sorting, although that would mean that unwanted logic is located at the client. The database (data tier) also offers ways to sort data, for example, through the use of views. Unfortunately, not all databases support sorting using views. That only leaves th…</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/trigger?rev=1593437675&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-29T13:34:35+00:00</dc:date>
        <title>jvx:server:storage:trigger</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/trigger?rev=1593437675&amp;do=diff</link>
        <description>With JVx, the business logic can be developed in either the database or the middle tier. For the development of the business logic entirely in the middle tier, so-called server-side triggers are required. These triggers work just like the DataBook events at the client.</description>
    </item>
    <item rdf:about="https://doc.sibvisions.com/jvx/server/storage/userdefined?rev=1592221572&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-15T11:46:12+00:00</dc:date>
        <title>User-Defined Storages</title>
        <link>https://doc.sibvisions.com/jvx/server/storage/userdefined?rev=1592221572&amp;do=diff</link>
        <description>JVx uses IStorage to transfer table data between client and server in standardized form. JVx contains an existing implementation for databases, DBStorage, and for dynamically assembled data, AbstractMemStorage. At the client, data is accessed via RemoteDataBooks.</description>
    </item>
</rdf:RDF>
