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

GEODATA DAYS 2024

#1 Tue 27 April 2010 12:09

Cyril Chat
Participant actif
Lieu: Niort
Date d'inscription: 14 Feb 2010
Messages: 90

[MapBasic 9.x] Problème de syntaxe autour de IF

Bonjour à tous,

Dans mon code, j'insère une colonne avec un rowid. Sauf que je souhaiterais lui dire que si une colonne identique existe déjà qu'il ne l'insère pas.
J'ai donc fait le code suivant, je n'ai pas de message d'erreur mais lorsque je l'exécute, MI bug et s'arrête à partir de cette étape.

Voici le code :

Code:

    If field_list contains ID then
        Exit sub
    Else
        add column nomtable (ID integer) from nomtable set to rowid
    End if

field_list correspond à la liste des champs de la table choisie. Voici comment je l'obtiens :

Code:

    For l=1 to nbchamp
    field_list= field_list + ColumnInfo (nomtable, "COL"+l, COL_INFO_NAME) + ";"
    Next

Si quelqu'un aurait une idée pour lui faire comprendre de ne pas l'ajouter s'il existe déjà ou une autre solution, je suis preneur!!!

Merci à tous.

Hors ligne

 

#2 Tue 27 April 2010 14:10

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

Contains c'est pour une relation spatiale entre objets
Là il faut vérifier si la chaine de caractère fiels_list contient ID
Comme il peut y avoir confusion avec des champs ID_bidule, je suggère que la recherche porte sur la chaine ";ID;"
D'où: If InStr(1, field_list, ";ID;") > 0 Then ...

Hors ligne

 

#3 Tue 27 April 2010 14:34

Cyril Chat
Participant actif
Lieu: Niort
Date d'inscription: 14 Feb 2010
Messages: 90

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

J'ai donc écrit ceci :

   

Code:

If InStr(1, field_list, ";ID;" > 0) then
        Exit sub
    Else
        add column nomtable (ID integer) from nomtable set to rowid
    End if

Et j'obtiens dans MI : "Non concordance des types de données dans l'expression"

Qu'est-ce que cela signifie???

Merci

Hors ligne

 

#4 Tue 27 April 2010 14:37

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

Salut,

Je dirais ----> If InStr(1, field_list, ";ID;") > 0 then

La fonction Instr() retourne la position d'un chaine de caractère dans une autre donc elle retourne un entier

Dernière modification par Spacejo (Tue 27 April 2010 14:46)

Hors ligne

 

#5 Tue 27 April 2010 14:51

Cyril Chat
Participant actif
Lieu: Niort
Date d'inscription: 14 Feb 2010
Messages: 90

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

La modification apportée ne m'envoie plus de message d'erreur. Mais le résultat obtenue est le même que cela que j'avais obtenu.

Je lance l'outil, tous ce passe bien, jusqu'à cette partie... On dirait que l'outil s'arrête. Je le relance, et exactement pareil...

Qu'en pensez vous???

Pour moi, je dirais que cela vient de "Exit sub"... Ce que je voudrais c'est qu'il abandonne cette procédure et passe à la suite...
Ce n'est donc peut être pas "Exit sub" que je dois mettre!!!

Dernière modification par Cyril Chat (Tue 27 April 2010 14:53)

Hors ligne

 

#6 Tue 27 April 2010 15:03

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

Et en faisant comme ceci:

Code:

If InStr(1, field_list, ";ID;" = 0) then
       
        add column nomtable (ID integer) from nomtable set to rowid

Else Nothing    
End if

Dernière modification par Spacejo (Tue 27 April 2010 15:03)

Hors ligne

 

#7 Tue 27 April 2010 15:14

Cyril Chat
Participant actif
Lieu: Niort
Date d'inscription: 14 Feb 2010
Messages: 90

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

Il ne reconnait pas le "Nothing"....

Hors ligne

 

#8 Tue 27 April 2010 15:17

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

Et si tu enlèves le "Else Nothing"

Hors ligne

 

#9 Tue 27 April 2010 15:35

Cyril Chat
Participant actif
Lieu: Niort
Date d'inscription: 14 Feb 2010
Messages: 90

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

Apparemment ça à l'air de fonctionner sur 1 test.

En fait, on lui dit, si tu ne trouves pas de champ égale à ID dans la liste, tu le crées, sinon rien... Et le rien est représenté par le vide et non par Else Nothing!!

C'est bien ça???

Hors ligne

 

#10 Tue 27 April 2010 15:47

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

Oui, c'est comme cela que je le vois mais je ne suis en prog qu'un jeune PADAWAN big_smile

Hors ligne

 

#11 Tue 27 April 2010 16:06

Cyril Chat
Participant actif
Lieu: Niort
Date d'inscription: 14 Feb 2010
Messages: 90

Re: [MapBasic 9.x] Problème de syntaxe autour de IF

Très bien merci...

Moi je suis un nourrisson PADAWAN alors!!!!

Hors ligne

 

Pied de page des forums

Powered by FluxBB