Cet exemple explique comment capturer le LDD d'une table dans Pointbase et créer la même table dans Java DB à l'aide de Netbeans 5.0. Un autre procédé consiste à utiliser l'outil de commandes et la commande unload database :
./startcommander.sh Do you wish to create a new Database. (Yes (Y) or No (N))? [default: N]: Enter product to connect with: (Embedded (E) or Server (S))? [default: E]: e Enter driver to use? [default: [com.pointbase.jdbc.jdbcUniversalDriver]: Enter database URL? [default: [jdbc:pointbase:embedded:sample]: Enter Username? [default: PBPUBLIC]: Enter Password? [default: PBPUBLIC]: PointBase Commander 5.2 ECF build 294 size restricted version EMBEDDED Interactive SQL command language. SunOS/5.9 (C) Copyright 2004 DataMirror Mobile Solutions, Inc. All rights reserved. Licensed to: Sun_customer_demo_use For commercial version contact PointBase at: pointbase.com PHONE: 1-877-238-8798 (US & CANADA) 1-408-961-1100 (International) WEBSITE: www.pointbase.com SQL>unload database sampledb.sql; SQL> unload database sampledb.sql; SQL> 13 Row(s) Unloaded. (PBPUBLIC.CUSTOMER_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.DISCOUNT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.MANUFACTURE_TBL) SQL> 11 Row(s) Unloaded. (PBPUBLIC.MICRO_MARKETS_TBL) SQL> 9 Row(s) Unloaded. (PBPUBLIC.OFFICE_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.OFFICE_TYPE_CODE_TBL) SQL> 15 Row(s) Unloaded. (PBPUBLIC.ORDER_TBL) SQL> 6 Row(s) Unloaded. (PBPUBLIC.PRODUCT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.PRODUCT_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_DATA_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_TBL) SQL> 52 Row(s) Unloaded. (PBPUBLIC.SALES_TAX_CODE_TBL) SQL> 12 Table(s) Unloaded. SQL> quit;
Les résultats de la commande unload database de l'exemple ci-dessus sont renvoyés dans le fichier sampledb.sql. Ce fichier sampledb.sql contient l'ensemble du LDD nécessaire pour créer des tables et index. Il contient également le DML permettant de retransférer les données dans la base de données. La commande RUN vise à importer les données d'une autre base de données Pointbase à l'aide du script généré. Voici un exemple d'affichage des instructions INSERT et des données associées dans le fichier généré :
INSERT INTO "ADVENTURE"."CATEGORY" ( "CATID", "LOCALE", "NAME", "DESCRIPTION", "IMAGEURI" ) VALUES( ?, ?, ?, ?, ? ); { 'ISLAND ','en_US','Island Adventures','Experience an island / paradise in a way fit for your needs.','Island_Adventures.gif' 'JUNGLE ','en_US','Jungle Adventures','Experience a jungle / paradise in a way fit for your needs.','Jungle_Adventures.gif' 'MOUNTAIN ','en_US','Mountain Adventures','Experience an / elevated paradise with a view.','Mountain_Adventures.gif' 'ORBITAL ','en_US','Orbital Adventures','Experience a vacuum / paradise with a beautiful view and where no one can hear you scream.', / 'Space_Adventures.gif' 'WESTERN ','en_US','Western Adventures','Enjoy the Wild West. / ','Western_Adventures.gif' 'SOUTH_POLE ','en_US','South Pole Adventures','Experience a / frozen paradise in a way fit for your needs.','SouthPole_Adventures.gif' };
Vous pouvez aisément modifier le fichier généré à l'aide de la commande unload database afin qu'il ne comporte que le LDD (il serait ainsi simple de développer un programme capable de traiter les instructions insert, par exemple). Pour simplifier, utilisons la commande unload database sur la base de données sample Pointbase, puis modifions le script généré en apportant les modifications suivantes :
Supprimons la phrase Organization Heap à la fin de toutes les instructions CREATE Table
Supprimons la commande COMMIT
Remplaçons le datatype Boolean par smallint
Supprimons toutes les instructions INSERT et données associées
Un script Ant simple est ensuite utilisé pour exécuter le LDD avec la cible sql . Enfin, la même expérience est répétée sur la base de données sun-appserv-samples pour laquelle les modifications supplémentaires suivantes doivent être apportées au fichier SQL généré :
Apportez toutes les modifications comme indiqué ci-dessus pour la base de données sample
Supprimez les commandes create user
Supprimez les commandes SET PATH
Remplacez la précision Decimal de 38 par une valeur max de 31
Remplacez la précision float de 64 par une valeur max de 52
Le mot-clé SPECIFIC de la commande CREATE PROCEDURE n'est actuellement pas pris en charge
Supprimez les commandes GRANT
La conversion de procédures Java Pointbase pour fonctionner avec Java DB nécessite l'apport de modifications au code Java et aux instructions CREATE PROCEDURE. Des informations sur la création de procédures Java Java DB sont disponibles dans le Manuel de référence Derby. Le type de données Boolean sera pris en charge dans la prochaine version de Java DB.