banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#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 tongue) à 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

 

Pied de page des forums

Powered by FluxBB