Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

#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 smile

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 wink mais il est possible de l'intégrer dans le script de base smile
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 wink --> http://www.forumsig.org/search.php?sear … 26&pp=
--> http://georezo.net/forum/search.php?sea … =scriptgen

Ce serait sympa de suivre vos discussions wink

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 wink

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é wink
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 wink

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 wink


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 sad

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 smile

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 wink
A+
Joël

Hors ligne

 

Pied de page des forums

Powered by FluxBB