#1 Thu 12 June 2014 11:46
- schnesschne
- Participant occasionnel
- Date d'inscription: 13 Mar 2007
- Messages: 21
Traitement par lot Modification structure de tables
Bonjour,
Petit cadeau de chef de projet, l'oubli de respecter la structure des tables SIG imposée par le cahier des charges.
Je cherche donc à traiter par lot mes fichiers tab afin de leurs imposer quelques colonnes supplémentaires avant leurs propres données ...
Du style : Prestataire Char (50) ;
Titre_étude Char (100) ;
Titre_carte Char (100) ;
Maitre_ouvrage Char (50) ;
Date_création Char (8) ;
Titre_rapport Char (100) ;
Numéro_carte Char (8) ;... ensuite les données SIG de chaque tables
Le petit plus serait de trouver aussi comment mettre à jour ces nouveaux champs avec une valeur prédéfinie qui me soulagerai de 80% de saisie
Merci
Hors ligne
#2 Thu 12 June 2014 13:24
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Traitement par lot Modification structure de tables
Salut,
Une solution est d'utiliser la FMB (Fenêtre MapBasic -> Options -> Afficher Fenêtre MapBasic) couplée avec un petit logiciel appelé "Scriptgen".
Connais tu ces outils?
Voilà un lien où le télécharger --> http://www.forumsig.org/showthread.php/ … =scriptgen
Voilà le script de base:
Code:
Open Table "TonChemin\XXXX.TAB" Interactive Alter Table "XXXX" ( add Titre_etude Char(100), Titre_carte Char(100), Maitre_ouvrage Char(50), Date_création Char (8), Titre_rapport Char (100), Numéro_carte Char (8) ) Interactive
Pour avoir la liste de tes tables en .txt --> http://www.infonautics.ch/directorylistprint/
Pour la question subsidiaire:
Le petit plus serait de trouver aussi comment mettre à jour ces nouveaux champs avec une valeur prédéfinie qui me soulagerai de 80% de saisie
Il faudrait quelques infos mais il est possible de l'intégrer dans le script de base
A+
Joël
Hors ligne
#3 Thu 12 June 2014 13:39
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Traitement par lot Modification structure de tables
Voilà pour voir ce que la FMB et scriptgen sont capables de faire --> http://www.forumsig.org/search.php?sear … 26&pp=
--> http://georezo.net/forum/search.php?sea … =scriptgen
Ce serait sympa de suivre vos discussions
http://georezo.net/forum/viewtopic.php?id=56432
http://georezo.net/forum/viewtopic.php?id=65213
http://georezo.net/forum/viewtopic.php?id=76383
, celà permets aux autres utilisateurs de voir que votre problème à trouver sa solution.
Dernière modification par Spacejo (Thu 12 June 2014 14:01)
Hors ligne
#4 Mon 16 June 2014 08:09
- schnesschne
- Participant occasionnel
- Date d'inscription: 13 Mar 2007
- Messages: 21
Re: Traitement par lot Modification structure de tables
Merci pour ta réponse SPACEJO ; Je vais bosser le script et faire un essai.
Concernant la mise à jour des champs, il me faudrait remplir de manière automatique les champs genre "titre de l'etude...", il me restera ensuite à corriger quelques lignes
Merci
Hors ligne
#5 Mon 16 June 2014 12:25
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Traitement par lot Modification structure de tables
Salut,
Pour compléter tes différents champs sur une table
Code:
Update Tatable set Titre_étude = "titre de l'etude..." Titre_carte = "Titre_carte" etc......
Ou sur une sélection de ta table:
Code:
Select * from TaTable where blablabla into AModifier update AModifier set Titre_étude = "titre de l'etude..." Titre_carte = "Titre_carte" etc......
Ces commandes peuvent être modifier pour aller dans sciptgen:
Code:
Select * from XXXX where blablabla into AModifier update AModifier set Titre_étude = "titre de l'etude..." Titre_carte = "Titre_carte" etc......
A+
Joël
Hors ligne
#6 Mon 16 June 2014 15:48
- schnesschne
- Participant occasionnel
- Date d'inscription: 13 Mar 2007
- Messages: 21
Re: Traitement par lot Modification structure de tables
Bon ; j'ai réussi à dompter le script sans aide à cause de ma version Windows ... bref
Ce dossier est un très bon modèle pour un support de formation que nous pourrions nommer 'Plus jamais ça !!! ^^'
Une belle collection de bourdes que je me tue à répéter lors de mes formations interne.
Le générateur de script n'a pas aimé du tout certains noms de tables ...
celles avec des '-' et des ' ESPACES ' qu'il transforme par des '_' par exemple et puis surtout les fichiers trop long.
Allez je vais continuer mon sacerdoce et remplir les champs
Merci
Hors ligne
#7 Mon 16 June 2014 19:57
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Traitement par lot Modification structure de tables
Le générateur de script n'a pas aimé du tout certains noms de tables ...
C'est plutôt Mapinfo qui n'a pas apprécié
A+
Joël
Hors ligne
#8 Tue 17 June 2014 10:48
- schnesschne
- Participant occasionnel
- Date d'inscription: 13 Mar 2007
- Messages: 21
Re: Traitement par lot Modification structure de tables
Sacré Mapinfo
J'essaie de remplir mes champs en m'aidant de ton support.
je génère un script genre ---> Update _ruissellement_non_caracterise set Titre_etude ="Etude du risque inondation sur la commune de Bagnols sur Cèze" Titre_carte ="titre de l'etude" Maitre_ouvrage = "A.B.Cèze..." Date_création = "2011..."
J'ouvre mes tables et ensuite je rentre mes commandes dans la fenêtre MB et je recois un message d'erreur de type Variable Titre_carte non définie
Je ne suis pas encore au point.
Hors ligne
#9 Tue 17 June 2014 12:38
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Traitement par lot Modification structure de tables
"Titre_carte" dans mon exemple est le nom de ton champ qui doit être incrémenter
Code:
update Nom_de_ta_table set Nom_du_Champ_contenant_ le_Titre_étude = "titre de l'etude..." Nom_du_Champ_contenant_ le_Titre_carte = "Titre_carte" etc......
Dernière modification par Spacejo (Tue 17 June 2014 12:38)
Hors ligne
#10 Tue 17 June 2014 14:42
- schnesschne
- Participant occasionnel
- Date d'inscription: 13 Mar 2007
- Messages: 21
Re: Traitement par lot Modification structure de tables
Pour être sur j'ai fait cette requête
Update _ruissellement_non_caracterise set Titre_etude = " Titre_etude " Titre_carte ="Titre_carte" Maitre_ouvrage = "Maitre_ouvrage" Date_création = "Date_création" Titre_rapport = "Titre_rapport" Numéro_carte = "Numéro_carte"
Normalement il devrait me mettre le contenu des champs = titre des champs mais j'ai toujours le même code erreur
Hors ligne
#11 Tue 17 June 2014 15:10
- schnesschne
- Participant occasionnel
- Date d'inscription: 13 Mar 2007
- Messages: 21
Re: Traitement par lot Modification structure de tables
Bon,
Je pense en avoir fini . Il fallait juste rajouter quelques virgules entre 2 champs
Merci pour tout Monsieur le Lorrain !
Je suis né à Verdun dans les tranchées
A+
Hors ligne
#12 Tue 17 June 2014 19:30
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Traitement par lot Modification structure de tables
Il fallait juste rajouter quelques virgules entre 2 champs
Oublis de ma part, je pensais les avoir mis, désolé du contre temps.
Moi je suis né à Nancy dans les chardons
A+
Joël
Hors ligne