#1 Thu 03 November 2011 15:14
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Enregistrer une table sous un nom variable
Bonjour j'ai écrit ce mbx mais il ne fonctionne pas car je souhaite enregistrer des tables sous un nom qui est une variable, soit associé à une autre variable, soit associé à une écriture fixe
Include "mapbasic.def"
declare sub main
sub main
dim nbre_table as integer
dim i as integer
dim nom as string
dim cmd1 as string
dim cmd2 as string
nbre_table=numtables()
for i =1 to nbre_table
nom=tableinfo(i,TAB_INFO_NAME)
'ici, si la table nom correspondant à i=1 s'appelle toto j'essaie de l'enregistre sous toto1, toto et i étant des variables
ligne1 Commit Table nom As "V:\0temporaire\nom+i.tab"
close table nom
open table "V:\0temporaire\nom+i.tab"
'ici je veux faire une sélection sur la table toto1 et l'enregistrer sous le nom toto_gard, toto étant variable et _gard fixe
ligne 2 cmd1="Select * from nom+i, N_DEP_BDC_030 where nom+i.Obj Intersects N_DEP_BDC_030.Obj into nom&"+_gard+""
run command cmd1
ligne 3 cmd2="Commit Table nom&"+_Gard+" As nom&"+_Gard+".tab"
run command cmd2
next
end sub
Pourriez vous m'aider à écrire les lignes 1,2 et 3 sachant que je ne suis pas certain qu'il faille passer par des run command
Merci :-)
Hors ligne
#2 Thu 03 November 2011 17:07
- Richard Lohier
- Participant occasionnel
- Lieu: Le perray en yvelines
- Date d'inscription: 13 Nov 2006
- Messages: 28
Re: Enregistrer une table sous un nom variable
Bonjour,
si vous utilisez '...\nom+i.tab' le nom de votre table sera... 'nom+i.tab', si vous utilisez '...\" & nom & i & ".tab" ', vous prendrez bien en compte les valeurs des variables pour définir le nom (nom = "toto", i = 1 : nom & i = toto1).
A la place de ligne1 Commit Table nom As "V:\0temporaire\nom+i.tab"
essayez ligne1 Commit Table nom As "V:\0temporaire\" & nom & i &".tab"
A la place de open table "V:\0temporaire\nom+i.tab"
essayez Open Table "V:\0temporaire\" & nom & i & ".tab"
A la place de ligne 2 cmd1="Select * from nom+i, N_DEP_BDC_030 where nom+i.Obj Intersects N_DEP_BDC_030.Obj into nom&"+_gard+""
essayez ligne 2 cmd1="Select * from " & nom & i & ", N_DEP_BDC_030 where " & nom & i & ".Obj Intersects N_DEP_BDC_030.Obj into " & nom & "_gard""
A la place de ligne 3 cmd2="Commit Table nom&"+_Gard+" As nom&"+_Gard+".tab"
essayez ligne 3 cmd2="Commit Table " & nom & "_Gard" As " & nom & "_Gard".tab"
Hors ligne
#3 Thu 03 November 2011 17:23
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: Enregistrer une table sous un nom variable
ça marche, merci beaucoup
Hors ligne