#1 Fri 20 November 2015 11:18
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Mapbasic: Numero d'une colonne et variable
Bonjour,
Mapinfo 12.5
Mapbasic 12
Window 7
Je cherche dans une boucle le numéro d'une colonne ( col1 puis aprés col2 etc) puis ensuite faire une jointure de col1 (Table A) vers col1 (table B) et ainsi de suite.
Donc je commence ma boucle mais je souhaite remplacer 1ou 2 ou 3 par la variable u donc la question est comment transformer Col1 dans commande SQL ?
Code:
u_rec = tableinfo(grille, tab_INFO_NCOLS ) Print+ u_rec u_rec= u_rec-1 For u=1 to u_rec Add Column Grille COL1 From points Set To COL1 Where contains
A+
Hors ligne
#2 Fri 20 November 2015 14:41
- CRIGBAB
- Participant assidu
- Lieu: Bayonne
- Date d'inscription: 14 Nov 2005
- Messages: 180
Re: Mapbasic: Numero d'une colonne et variable
Bonjour,
Pour ma part j'utilise souvent une commande en chaine de caractères quand j'ai des variables à passer, souple et sûr.
en gros dans le mapbasic
global commande as string ' pour le global voir plus bas
....
dim numcol as integer
...
commande = "Add Column Grille COL"+numcol+" from points Set To COL"+numcol+" where contains"
run command commande
Ainsi je peux même introduire un note commande qui me permets de contrôler la bonne syntaxe de la commande.
Simple systématique et avec un contrôle, il y a sûrement d'autres solutions plus directes mais cela marche.
le global permet d'avoir une seule chaine commande pour toutes les sub et function sinon dim ... dans la sub/function concernée.
Cordialement.
Hors ligne
#3 Mon 23 November 2015 15:27
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: Mapbasic: Numero d'une colonne et variable
Je viens de trouver !
La solution pour avoir le nom d'une colonne dans une table (ici u est la variable pour obtenir le numéro de la colonne)
dim u,u_rec integer
u_rec = tableinfo(nom de la table, tab_INFO_NCOLS ) ' obtenir le nombre de colonne dans la table
For u to u_rec ' boucle pour avoir le nom de chaque colonne
nomcol= Columninfo("nom de la table","Col"+u,Col_INFO_NAME) ' obtenir le nom de la colonne
if u=u_rec then exit for
next
Dernière modification par didou72 (Wed 25 November 2015 14:30)
Hors ligne