#1 Thu 04 November 2010 16:52
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
choisir le nom d'une table et l'enregistrer
Bonjour,
je souhaite faire un mbx qui demande quel nom de table on veut puis qui enregistre cette table créée (dans mon exemple j'ajoute un champ commentaire, un champ X et un champ Y
A l'exécution dans map info j'ai le message que le résultat de l'expression n'est un nom de table ou de colonne, pourquoi ?
Merci d'avance pour votre aide :-)
Include "mapbasic.def"
Declare sub main
declare sub crea_table
sub main
'demande du nom de la table
dialog
control statictext
title "nom de la table à créer"
position 120, 120
id 1
control edittext
position 120, 130
id 2
width 80
control button
position 120, 90
title "valider"
id 3
calling crea_table
width 40
end sub
sub crea_table
Dim nom_table as string*20
nom_table = readcontrolvalue(2)
Create Table nom_table (Commentaire Char(250),X Float,Y Float) file "Z:\Table_Point\nom_table.TAB" TYPE NATIVE Charset "WindowsLatin1"
commit table nom_table
end sub
Hors ligne
#2 Thu 04 November 2010 17:05
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: choisir le nom d'une table et l'enregistrer
Bonjour
Pour la ligne en gras, il y a mélange de variable (nom_table) et de constantes
Comme toujours dans ce cas passer par une commande interprétée
Code:
Dim cmd as String cmd="Create Table "+nom_table+" (Commentaire Char(250),X Float,Y Float) file "+chr$(34)+"Z:\Table_Point\"+nom_table+".TAB"+chr$(34)+" TYPE NATIVE Charset "+chr$(34)+"WindowsLatin1"+chr$(34) Print cmd 'pour vérifier !!... Run Command cmd
Hors ligne
#3 Fri 05 November 2010 09:14
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: choisir le nom d'une table et l'enregistrer
Merci Maurice (une nouvelle fois) pour ton aide.
Pourrais tu juste m'expliciter un ce qu'est une commande interprétée et quand l'utiliser ?
De plus à quoi sert la fonction Chr£(34) ? J'ai cherché dans l'aide mais je n'ai pas compris à quoi cela servait.
Merci :-)
ps : si tu as un lien vers un document explicitant les commandes interprétées je suis très intéressé
Hors ligne
#4 Fri 05 November 2010 12:07
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: choisir le nom d'une table et l'enregistrer
Question complémentaire :
nous avons donc sauvegarder la table nom_table, mais ensuite quand je veux rappeler cette table dans le mbx comment dois je faire ?
Par exemple si je veux mettre à jour les champs de cette table ?
Open Table "Z:\Table_Point\test.tab"
Insert into test values (readcontrolvalue(9), readcontrolvalue(5), readcontrolvalue(7))
commit table test
Ici cela marche avec une table test qui existe mais si je veux appeler la table nom_table (qui est une variable, comment je dois procéder ?
Merci :-)
Hors ligne