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 Wed 26 February 2003 13:10

Bcremet
Invité

Enregistrer une table dont le nom est une variable

Bonjour a tous.

Je souhaite pouvoir enregistrer une table par l'intermediaire de mapbasic sachant que je ne connait pas le nom de cette table. Le nom est definit par l'utilisateur et donc est stocke dans une variable.
Toutes les commandes du style Create table, Commit Table, Save File... necessite le nom de la table et si j'y inscrit ma variable, la table est enregistree sous ma variable.tab alors que je veux la chaine de caracteres contenue dans ma variable.tab
Deux questions:
Est-ce que c'est possible?
Si oui, comment?

Merci

 

#2 Wed 26 February 2003 14:32

Jacques Paris
Invité

Re: Enregistrer une table dont le nom est une variable

Comme dans toutes les circonstances ou MapInfo s'attend a rencontrer le nom
d'une table et que celui-ci est contenue dans une variable, il faut forcer
MB a convertir la variable en un vrai nom et pour cela on utilise la
commande  RUN COMMAND  . Par exemple

Run command Commit table  + variable_nom_de_table

La variable peut etre au milieu d'une commande, il faut simplement s'assurer
de laisser des blancs la ou il faut pour bien separer les elements.

Jacques Paris

 

#3 Wed 26 February 2003 17:25

Frédéric Renversez
Invité

Re: Enregistrer une table dont le nom est une variable

Euh, la commande suivante marche, non ?

Commit Table MaVariable As MonNomDeTable + .tab

Par contre pour les Select, la, effectivement, le Run Command est necessaire :
sCmd = Select * From  + sNomTable +  Where Id=  + iId +  Into tmpTable

Run Command sCmd

Frederic RENVERSEZ, I2G
frederic.renversez@texte-a-enlever.i2g.fr

 

#4 Wed 26 February 2003 18:37

Bcremet
Invité

Re: Enregistrer une table dont le nom est une variable

Re bonjour
Merci a Jacques Paris pour son aide. Malheureusement, ca n'a pas resolu mon probleme, enfin disons plutot que ca l'a deplace. Maintenant, quand j'execute mon mbx, MapInfo me renvoie le message d'erreur suivant :
variable ou champs Routes50 non defini (Routes50 etant la chaine de caracteres stockee dans ma variable). Ce message m'etonne etant donnee que ma variable est deja definie.

 

#5 Thu 27 February 2003 12:35

Bcremet
Invité

Re: Enregistrer une table dont le nom est une variable

Bonjour,
Je n'ai sans doute pas donne tous les elements de mon probleme. Je debute dans mapbasic donc comme je ne sais pas trop ou je vais, c'est difficile de l'expliquer clairement.
Mon outil devrait permettre a l'utilisateur de creer des tables derivees a partir de table base. Pour cela, l'outil recupere le nom de la table base specifie par l'utilisateur, effectue un certain nombre d'operations a partir de cette table base et devrait ensuite enregistrer ces operations dans une autre table que j'appelle table derivee et dont le nom est definit par l'utilisateur. Tout va bien jusqu'au moment ou je veux enregistrer la table derivee sous le nom definit par l'utilisateur. La solution proposee par Frederic Renversez (que je remercie au passage)fonctionne mais ne permet pas de renommer une table existante? Celle proposee par Jacques Paris me renvoie un message d'erreur que j'ai deja soumis a la liste.
Peut-etre que j'insere mal ces bouts de code dans mon programme.
Merci pour votre aide

 

#6 Sat 01 March 2003 11:32

Frédéric Renversez
Invité

Re: Enregistrer une table dont le nom est une variable

> /.../ La solution proposee par Frederic Renversez (que je remercie au passage) fonctionne mais ne permet pas de renommer une table >existante? Celle proposee par Jacques Paris me renvoie un message d'erreur que j'ai deja soumis a la liste.

Pour renommer une table existante il y a

Rename Table sMonNomDeTable As sMonnomDeFichier
avec sMonNOmDeFichier = c:tototiti.tab par exemple.

Mais dans ce cas le nom de la table de base est modifie.

SInon, la solution que je vous ai proposee hier est equivalente a un
Enregistrer Sous... de Mapinfo : la table de base reste et une table derivee
est creee.

Sinon , si vous avez des problemes, il se peut que vous ayez aussi un nom
de variable qui ait le meme nom qu'une table, ce qui fait que MapBasic s'emmele
les pinceaux dans des commandes comme Commit ou autre.
Ca par exemple est a eviter :

Dim MaTable As String
Open Table MaTable.tab

 

Pied de page des forums

Powered by FluxBB