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 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

 

Pied de page des forums

Powered by FluxBB