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

Printemps des cartes 2024

#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

 

Pied de page des forums

Powered by FluxBB