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 11 December 2014 09:35

SylvaDEES
Participant actif
Date d'inscription: 12 Jul 2012
Messages: 86

RequĂȘte SQL sur plusieurs tables (Alter Table+Addcolumn+Update Area)

Bonjour,

je dispose de 208 tables sur lesquelles je dois :  crĂ©er/ajouter une colonne "surface" et y ajouter la surface en mÂČ de chaque objets.

J'aimerais, si possible, automatiser cette tĂąche par l'intermĂ©diaire d'une seule requĂȘte SQL Ă  lancer dans la fenĂȘtre FMB, cependant je sĂšche
sur la façon de la rédiger. Je souhaiterais passer par :

  ALTER TABLE  table1,....,....,.....,table208
    ADD colonne"Surface", type colonne,......

  UPDATE table1,....,....,.....,table208
    SET colonne"Surface"=CartesianArea


En vous remerciant pour vos suggestions.

Hors ligne

 

#2 Thu 11 December 2014 11:01

nicoboud
Membre
Lieu: Nantes
Date d'inscription: 12 Oct 2007
Messages: 860

Re: RequĂȘte SQL sur plusieurs tables (Alter Table+Addcolumn+Update Area)

Bonjour,

Vous devriez y arriver avec scriptgen. Tapez ce mot-clé dans la barre de recherche.

Le principe : mettez au point votre commande (un script) pour une table, puis remplacer le nom de votre table par une variable qui va reprendre les noms de vos 208 tables dans scriptgen, qui va vous produire les 208 scripts Ă  copier coller dans la FMB.

Nicolas.


Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS

Hors ligne

 

#3 Thu 11 December 2014 11:45

SylvaDEES
Participant actif
Date d'inscription: 12 Jul 2012
Messages: 86

Re: RequĂȘte SQL sur plusieurs tables (Alter Table+Addcolumn+Update Area)

Bonjour,

autant pour moi, ce n'est finalement pas si compliqué.
J'ai édité un script de ce type avec Notepad++ et qui fonctionne bien:

Open Table "Chemin d'accĂšs de ma_Table"
Alter table "ma_Table" (add SURFACE Integer)
Update ma_Table Set SURFACE=CartesianArea(obj, "sq m")
Commit Table ma_Table

Petites questions cependant, de la part d'un novice en FMB:

. dans ce cas précis, ne peut-on pas s'affranchir de l'ouverture des Tables dans Mapinfo ??

. quelle est l'interface d'Ă©criture la plus adaptĂ©e : Notepad ++  ou Scriptgen ??

SylvaDEES

Hors ligne

 

#4 Thu 11 December 2014 13:28

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: RequĂȘte SQL sur plusieurs tables (Alter Table+Addcolumn+Update Area)

Salut,

. dans ce cas précis, ne peut-on pas s'affranchir de l'ouverture des Tables dans Mapinfo ??


Non, et il faut bien le chemin de ta table pour la modifier.

. quelle est l'interface d'Ă©criture la plus adaptĂ©e : Notepad ++  ou Scriptgen ??


Je ne comprends pas trés bien la question.
D'un cÎté tu as un éditeur de texte et de l'autre un executable qui te dupliques des lignes de code.
Je ne connais pas bien Notepad ++, ce qui est bien c'est qu'il a une coloration syntaxique pour MapBasic mais je n'ai jamais trouvĂ© de fonction pour dupliquer des requĂȘtes via une liste.Tu peux peut ĂȘtre m'Ă©clairer?
Maintenant pour ton script initial, je rajouterais un:

close table TaTable Interactive


Celà évitera que tu aies 208 tables d'ouvertes wink
Une autre observation -> la FMB est limitée en nombre de lignes donc 208 x 5 lignes de code celà fait beaucoup.
ProcĂšde par lots.
A+
Joël

Hors ligne

 

#5 Thu 11 December 2014 16:19

SylvaDEES
Participant actif
Date d'inscription: 12 Jul 2012
Messages: 86

Re: RequĂȘte SQL sur plusieurs tables (Alter Table+Addcolumn+Update Area)

Bonjour Spacejo,

tout d'abord merci pour tes réponses et ton expertise.

J'ai ajoutĂ© la ligne Close Table comme indiquĂ©, cela complĂšte Ă  100% l'objectif de la requĂȘte.

J'avoue ne pas avoir encore découvert et pris en main Scriptgen, ce qui ne serait tarder. Par conséquent je ne suis, pour le moment,
pas suffisamment compétent pour répondre à ta question.

Sinon, oui,  Il y a bien une coloration syntaxique pour MapBasic dans Notepad++

Concernant le nombre de lignes supportĂ©es par la fenĂȘtre FMB, j'ai donc coupĂ© la poire en deux, et pas de problĂšmes particuliers,
les requĂȘtes se sont parfaitement exĂ©cutĂ©es.

SylvaDEES

Hors ligne

 

#6 Wed 14 January 2015 08:26

Betula
Participant occasionnel
Date d'inscription: 18 Sep 2005
Messages: 20

Re: RequĂȘte SQL sur plusieurs tables (Alter Table+Addcolumn+Update Area)

Bonjour,
La fenĂȘtre mapbasic est utile pour dĂ©velopper du code ou tester des commandes. 
Pour faire des traitements rĂ©pĂ©titifs nombreux il est prĂ©fĂ©rable de recourir Ă  un fichier .wor. 
Il n'y a pas de limite du nombre de lignes. 
L'astuce est dĂ©crite dans l'aide de Scriptgen. 
D'ailleurs celui ci génÚre des fichiers wor fonctionnels.
Salutations
BeTuLa


BeTuLa

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo