Wiki source code of Génération du MLD - Scripts SQL - Scripts génériques
Last modified by Isabelle FERRIERE on 2017/09/05 17:07
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | * ((( |
| 2 | = (% style="font-size: 24.0px;" %)**__SCRIPTS SQL__**(%%) = | ||
| 3 | ))) | ||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 | |||
| 8 | Le gestionnaire de travaux doit être démarré. | ||
| 9 | |||
| 10 | Au niveau de la génération du MLD, cochez "Script SQL". | ||
| 11 | Précisez le chemin et le nom d'un fichier texte. | ||
| 12 | Cliquez sur le bouton "Générer". | ||
| 13 | |||
| 14 | Attention : le script SQL ainsi généré ne permet que de créer les tables (CREATE_TABLE). | ||
| 15 | Si vous souhaitez modifier la structure des tables ou supprimer des tables (par exemple), il faut modifier à la main ce script pour ne pas faire de CREATE_TABLE, mais des ALTER_TABLE ou des DROP_TABLE (ou autres ordres SQL selon l’action souhaitée). | ||
| 16 | |||
| 17 | ((( | ||
| 18 | == **__Exécuter un script SQL__** == | ||
| 19 | ))) | ||
| 20 | |||
| 21 | Vous pouvez l'exécuter depuis le gestionnaire de requête du SGBD. | ||
| 22 | |||
| 23 | |||
| 24 | |||
| 25 | ---- | ||
| 26 | * ((( | ||
| 27 | = **__SCRIPTS GÉNÉRIQUES__** = | ||
| 28 | ))) | ||
| 29 | |||
| 30 | |||
| 31 | |||
| 32 | |||
| 33 | Le gestionnaire de travaux doit être démarré. | ||
| 34 | |||
| 35 | Au niveau de la génération du MLD, cochez "Script générique". | ||
| 36 | Précisez le chemin et le nom d'un fichier texte, avec comme extension .gen. | ||
| 37 | Cliquez sur le bouton "Générer". | ||
| 38 | |||
| 39 | |||
| 40 | ((( | ||
| 41 | ===== Exemples de scripts générés: ===== | ||
| 42 | ))) | ||
| 43 | |||
| 44 | |||
| 45 | * //Script obtenu, sans conservation des données :// | ||
| 46 | |||
| 47 | PG;0,0,1,0, | ||
| 48 | CE;'ADELIA','ZENTITE',ZENTITE,ZENTITEL,ZENTITEF,1, ,'ZENTITE';'ID',ID,6,10,0,1,E,0,1,'','','','ID',0,0;'LIBL',LIBL,30,35,0,0, ,0,1,'','','','LIBL',0,0 | ||
| 49 | |||
| 50 | |||
| 51 | * //Script obtenu, avec conservation des données :// | ||
| 52 | |||
| 53 | PG;1,0,1,0, | ||
| 54 | CE;'ADELIA','ZENTITE',ZENTITE,ZENTITEL,ZENTITEF,1, ,'ZENTITE';'ID',ID,6,10,0,1,E,0,1,'','','','ID',0,0;'LIBL',LIBL,30,45,0,0, ,0,1,'','','','LIBL',0,0;'TMSTMP',TMSTMP,13,12,0,0, ,0,1,'','','','Timestamp',0,0 | ||
| 55 | |||
| 56 | ((( | ||
| 57 | == **__Gestion des versions__** == | ||
| 58 | ))) | ||
| 59 | |||
| 60 | Facultatif | ||
| 61 | Vous pouvez gérer une gestion des versions de votre base de données, si vous le souhaitez. | ||
| 62 | |||
| 63 | Créez une table permettant de mémoriser le n° de version des tables : | ||
| 64 | |||
| 65 | [[image:Table n° version.jpg]] | ||
| 66 | |||
| 67 | Prévoyez une gestion des données pour incrémenter le n° de version. | ||
| 68 | |||
| 69 | ((( | ||
| 70 | == **__Gestion des données__** == | ||
| 71 | ))) | ||
| 72 | |||
| 73 | Facultatif | ||
| 74 | Vous pouvez exécuter des requêtes après la création / mise-à-jour des tables. | ||
| 75 | Ces requêtes seront placées dans un fichier .dat. | ||
| 76 | |||
| 77 | Créez un fichier texte .dat : CLIENTS.dat, par exemple. | ||
| 78 | Saisissez les requêtes SQL. | ||
| 79 | Par exemples : | ||
| 80 | |||
| 81 | INSERT INTO ADELIA.ZENTITE VALUES(1,'LIBL 1') | ||
| 82 | INSERT INTO ADELIA.ZENTITE VALUES(2,'LIBL 2') | ||
| 83 | INSERT INTO ADELIA.ZENTITE VALUES(3,'LIBL 3') | ||
| 84 | |||
| 85 | UPDATE BDCLI.VERSION SET NO_VER~=NO_VER+1 | ||
| 86 | |||
| 87 | ((( | ||
| 88 | == **__.dbd spécifique__** == | ||
| 89 | ))) | ||
| 90 | |||
| 91 | Créez un fichier texte .dbd : CLIENTS.dbd, par exemple. | ||
| 92 | Créez les différentes sections en suivant la description faite dans l’aide en ligne, sous l’onglet Sommaire : « L’outil de gestion de bases de données >> Description de la base de données ». | ||
| 93 | |||
| 94 | |||
| 95 | {{code title="Exemple - Création de tables, avec insertion de données" language="none"}} | ||
| 96 | [DB2] | ||
| 97 | GrantedErrors=100,204,805,803,612 | ||
| 98 | |||
| 99 | [PDM/Generic] | ||
| 100 | *ALL = script.gen | ||
| 101 | |||
| 102 | [Data/Generic] | ||
| 103 | *ALL = sql_insert.dat | ||
| 104 | {{/code}} | ||
| 105 | |||
| 106 | |||
| 107 | |||
| 108 | {{code title="Exemple - Mise-à-jour de tables, sans gestion de versions" language="none"}} | ||
| 109 | [DB2] | ||
| 110 | GrantedErrors=100,204,805,803,612 | ||
| 111 | |||
| 112 | [PDM/Generic] | ||
| 113 | *ALL = script.gen | ||
| 114 | {{/code}} | ||
| 115 | |||
| 116 | |||
| 117 | |||
| 118 | {{code title="Exemple - Mise-à-jour de tables, avec gestion de versions" language="none"}} | ||
| 119 | [Database] | ||
| 120 | Version=3 | ||
| 121 | checkversion=SELECT NO_VER FROM BDCLI.VERSION | ||
| 122 | |||
| 123 | [DB2] | ||
| 124 | GrantedErrors=100,204,805,803,612 | ||
| 125 | |||
| 126 | [PDM/Generic] | ||
| 127 | *ALL = script.gen | ||
| 128 | 2 = 3, script_updt_v3.gen | ||
| 129 | |||
| 130 | [Data/Generic] | ||
| 131 | *ALL = sql_insert.dat | ||
| 132 | 2 = sql_updt_v3.dat | ||
| 133 | {{/code}} | ||
| 134 | |||
| 135 | |||
| 136 | *ALL permet de créer les tables si elles n’existent pas. | ||
| 137 | Dans [Database], précisez la nouvelle version. | ||
| 138 | Dans [PDM] et [Data], précisez la version actuelle pour la mise-à-jour des tables. | ||
| 139 | |||
| 140 | ((( | ||
| 141 | == (% style="font-size: 20.0px;" %)**__Exécution du script générique__**(%%) == | ||
| 142 | ))) | ||
| 143 | |||
| 144 | L'exécution des scripts génériques se fait dans l'outil de gestion des bases de données (dbtool). | ||
| 145 | |||
| 146 | Allez dans Adélia >> Utilitaires >> Outils de gestion des bases de données. | ||
| 147 | |||
| 148 | Les exemples sont données avec DB2 comme DGBD. | ||
| 149 | Mais, le principe est le même avec les autres SGBD. | ||
| 150 | |||
| 151 | |||
| 152 | (% style="font-size: 16.0px;" %)**__Créer une table__**(%%) | ||
| 153 | |||
| 154 | Sélectionnez le .dbd. | ||
| 155 | Cochez « Créer les tables ou les fichiers ». | ||
| 156 | |||
| 157 | [[image:dbtool - creer tables ou fichiers.png]] | ||
| 158 | |||
| 159 | Cliquez sur « Suivant ». | ||
| 160 | Précisez la base de données sur laquelle doit s’exécuter le script. | ||
| 161 | |||
| 162 | [[image:dbtool - choix database.png]] | ||
| 163 | |||
| 164 | Cliquez sur « Suivant ». | ||
| 165 | Eventuellement, demandez la journalisation des actions. | ||
| 166 | Cliquez sur « Suivant ». | ||
| 167 | Cliquez sur « Exécuter ». | ||
| 168 | |||
| 169 | ~=> La table est créé avec les données insérées dedans. | ||
| 170 | |||
| 171 | [[image:db2 - tables v1.png||height="400"]][[image:db2 - tables v1 - data.png||height="250"]] | ||
| 172 | |||
| 173 | ((( | ||
| 174 | === **__Mettre à jour une table, sans gestion de versions__** === | ||
| 175 | ))) | ||
| 176 | |||
| 177 | Sélectionnez le .dbd. | ||
| 178 | Cocher « Créer les tables ou les fichiers », car ce .dbd ne comprend pas de script BD particulier (pas de section [Data/Generic]). | ||
| 179 | |||
| 180 | [[image:dbtool - creer tables ou fichiers - v2.png]] | ||
| 181 | |||
| 182 | Cliquez sur « Suivant ». | ||
| 183 | Précisez la base de données sur laquelle doit s’exécuter le script. | ||
| 184 | Cliquez sur « Suivant ». | ||
| 185 | Eventuellement, demandez la journalisation des actions. | ||
| 186 | Cliquez sur « Suivant ». | ||
| 187 | Cliquez sur « Exécuter ». | ||
| 188 | |||
| 189 | ~=> La table est mise-à-jour. | ||
| 190 | |||
| 191 | [[image:db2 - tables v2.png||height="400"]][[image:db2 - tables v2 - data.png||height="250"]] | ||
| 192 | ((( | ||
| 193 | === **__Mettre à jour une table, avec gestion de versions__** === | ||
| 194 | ))) | ||
| 195 | |||
| 196 | Sélectionnez le .dbd. | ||
| 197 | Cochez « Mettre à jour une base de données », car ce .dbd comprend un script BD particulier, permettant, entre autre, la gestion du n° de version (présence d'une section [Data/Generic]). | ||
| 198 | |||
| 199 | [[image:dbtool - mettre à jour une bd - v3.png]] | ||
| 200 | |||
| 201 | Cliquez sur « Suivant ». | ||
| 202 | Précisez la base de données sur laquelle doit s’exécuter le script. | ||
| 203 | Cliquez sur « Suivant ». | ||
| 204 | Eventuellement, demandez la journalisation des actions. | ||
| 205 | Cliquez sur « Suivant ». | ||
| 206 | Cliquez sur « Exécuter ». | ||
| 207 | |||
| 208 | ~=> La table est mise-à-jour, ainsi que le n° de version dans la table VERSION. | ||
| 209 | |||
| 210 | [[image:db2 - version.png||height="150"]]((( | ||
| 211 | == **__Exécution du script générique en mode batch__** == | ||
| 212 | ))) | ||
| 213 | |||
| 214 | Vous pouvez exécuter le script générique en lançant dbtool en mode batch, dans un .bat, par exemple. | ||
| 215 | |||
| 216 | |||
| 217 | {{code title="Exemple de .bat pour une base 400" language="none"}} | ||
| 218 | dbtool -descfile:"D:\Adelia\scripts génériques\CLIENTS_1.dbd" -logfile:"D:\log\ScriptsGen.txt" -create_tables -dbm:"AS400" -database:"MABIB" -host:"MON400" | ||
| 219 | -miduser:"user" -midpassword:"pwd" -no_input | ||
| 220 | {{/code}} | ||
| 221 | |||
| 222 | |||
| 223 | Pour plus de précisions, voyez la fiche de l'aide en ligne : « Outil de gestion de bases de données - Mode batch ». | ||
| 224 | |||
| 225 | |||
| 226 |