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

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 12 April 2001 22:31

Vvestri
Invité

Astérisque et SQL

Grenoble, le 12 avril 2001

Bonjour a tous,

J'utilise frequemment les requetes SQL avec des jointures de tables et
j'aurais une demande a leur propos.

Je possede une Table A (aucune carto associee) contenant une dixaine de
champs, une table B (carto associee) contenant 2 champs. Ces derniers ce
retrouvent a l'identique dans la table B et servent a la jointure.
Actuellement j'effectue une requete SQL avec laissant un asterisque dans la
zone colonnes afin de recuperer toutes les informations. Cependant
aujourd'hui je souhaiterai recuperer uniquement les champs de la table A
puisque ceux de la table B s'y trouvent deja.

Je precise que ce type de requete est developpe dans MapBasic et qu'a aucun
moment je ne sais de combien la table A se compose de champs alors que la
table B n'aura toujours que 2 champs.

Quelqu'un a t il deja eu a faire a ce genre de problematique ?

Merci d'avance pour toutes vos idees


Veronique VESTRI
Ingenieur SIG
vvestri@texte-a-enlever.atmo-rhonealpes.org

 

#2 Tue 17 April 2001 22:30

Jacques Paris
Invité

Re: Astérisque et SQL

Bonjour,

J’etais en visite a Toronto pour une conference MapInfo ce qui explique le
retard a vous repondre alors que n’ai encore vu aucune reponse sur
mapinfo_fr.

J’ai identifie trois solutions possibles a votre probleme. La premiere est
entierement manuelle : laissez faire (* dans la boite colonnes) et modifier
la structure pour faire sauter les deux colonnes incriminees. La deuxieme
implique de programmer la « destruction » avec « Alter Table table_resultat
Drop colonne1, colonne2 », colonneX est le nom de la colonne X de B
prolonge » par _2 (il vaudrait mieux verifier la facon precise avec
laquelle MI renomme une colonne dont le nom existe deja)

La troisieme est pure programmation et consiste a recreer un enonce qui
serait de la forme « select tableB.col1, tableB.col2, … where… ». pour cela
il faut connaitre ncols (nombre de colonnes dans table B, avec
tableinfo(tableB, tab_info_ncols) ) et en construisant l’enonce comme une
chaine : (tableB est une variable caractere du nom de la table)

dim comm as string
comm=”select “+tableB +” “ +tableB+”.col1”
for I = 2 to ncols
comm=comm+”, ”+tableB+”.col”+str(I)
next
comm=comm + “ where….”
run command comm.

Dans votre cas, je favoriserais la deuxieme solution, la plus compacte et
certainement la plus rapide, puisque que les colonnes a supprimer sont
toujours les memes.

En ce qui concerne l’utilisation du Control Check Box, il faut bien s’
assurer d’utiliser « INTO Icheck » ou Icheck est dimensionne comme une
variable logique. Par la suite, il devrait suffire de faire « If Icheck
then …. operations a faire si l’option est choisie .. end if»

Jacques PARIS

jacques@texte-a-enlever.paris-pc-gis.com

 

Pied de page des forums

Powered by FluxBB