Pages: 1
- Sujet prĂ©cĂ©dent - RequĂȘte SQL sur plusieurs tables (Alter Table+Addcolumn+Update Area) - Sujet suivant
#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 ![]()
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
Pages: 1
- Sujet prĂ©cĂ©dent - RequĂȘte SQL sur plusieurs tables (Alter Table+Addcolumn+Update Area) - Sujet suivant

