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