#1 Wed 26 March 2008 11:55
- jerome976
- Participant occasionnel
- Lieu: Mayotte
- Date d'inscription: 12 Sep 2005
- Messages: 42
créer de nouveaux champs dans plusieurs tables
Bonjour,
Voici mon problème : je dois mettre à jour plusieurs 10aines de tables en ajoutant dans chacune d'entre elles 3 champs : DATE_M_A_J, VALIDE_PAR et LIMITE_UTIL.
Pour le moment, la difficulté consiste à ajouter ces champs un par un pour chaque table en passant par gestion tables > modifier structure, ce qui est on ne peut plus laborieux.
Alors je me demandais s'il n'existait pas un utilitaire ou une commande SQL qui permet de créer ces champs "automatiquement".
L'idéal serait même de créer ces champs et leur associer une valeur unique pour chacun d'entre eux.
Auriez-vous une idée ?
Merci pour vos réponses.
Jérôme Blanchet
Chargé de mission SIG
Direction de l'Equipement - Mayotte
Hors ligne
#2 Wed 26 March 2008 16:26
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: créer de nouveaux champs dans plusieurs tables
Bonjor
Faites la manip' avec la FMB ouverte et vous aurez la syntaxe de la commande MapBasic (pas SQL!! ça c'est pour les sélections ) à appliquer
Préparez toutes les lignes pour toutes les tables (depuis le open de la table - sans visualisation - jusqu'à la commande de màj) puis les sélectionner toutes dans la FMB et...'enter'
ps: une ligne de commande DOS pour établir la liste des tables d'un répertoire dans un fichier *.txt
dir /b C:\temp\*.tab > c:\temp\listab.txt
Hors ligne
#3 Wed 26 March 2008 16:35
- Betula
- Participant occasionnel
- Date d'inscription: 18 Sep 2005
- Messages: 20
Re: créer de nouveaux champs dans plusieurs tables
En écrivant un script avec cet utilitaire gratuit...
http://www.geocities.com/rictrem/index.html
Script de base :
Open Table "C:\Temp\Demo\Test\UneTable.TAB" as Matable Interactive
Alter Table "Matable" ( add DATE_M_A_J Date,VALIDE_PAR Char(20),LIMITE_UTIL
Char(10) ) Interactive
Update Matable Set DATE_M_A_J = "2008/03/26"
Update Matable Set VALIDE_PAR = "BeTuLa"
Update Matable Set LIMITE_UTIL = "Sans limite"
Commit Table Matable Interactive
Close All
Vous faites la liste des tables que vous désirez éditer avec la fonction
Faire une liste. La valeur à remplacer est le nom avec le chemin complet,
dans ce cas C:\Temp\Demo\Test\UneTable.TAB. Vous enregistrez le script final
dans un fichier workspace et vous l'ouvrez avec mapinfo.
Salutations
BeTuLa
Hors ligne