Pages: 1
- Sujet précédent - [MapBasic 8.5]Problème sur l'existence d'un champ dans une table - Sujet suivant
#1 Mon 28 June 2010 14:50
- V. Girault
- Participant actif
- Lieu: Clermont-Ferrand
- Date d'inscription: 22 Sep 2005
- Messages: 106
[MapBasic 8.5]Problème sur l'existence d'un champ dans une table
Bonjour @ tous !
Le sujet qui m'occupe ici est de créer un champ dans une table, mais avant de le créer, je fais un test de l'existence de ce champ dans ma table. Si celle-ci est trouvée, je veux sortir de ma procédure et passer à la suite du code. Le problème est que le test se fait bien bien mais la sortie de la procédure non. Ca m'avait l'air relativement simple...
Voici le code que j'ai écrit :
Code:
'Ajout d'une colonne ID à la table qui contiendra ROWID
'------------------------------------------------------
Dim I, NBCD as integer
Dim NbColD as SmallInt
Dim CnameAttendu as String
name = "PARTIEL_OPERATIONS"
If istableopen(name) then
NbColD=TableInfo(name, TAB_INFO_NCOLS)
For NBCD = 1 to NbColD
'note NBCD
CnameAttendu=ColumnInfo(name, "COL"&NBCD, COL_INFO_NAME)
'note CnameAttendu
If CnameAttendu="ID" Then
Exit For
Exit Sub
End If
If CnameAttendu<>"ID" Then
Alter table name (add ID Integer) interactive
Update name Set ID = ROWID
Commit table name interactive
Open table "C:\Documents and Settings\GiraultV\Mes documents\MI\Tables\"+name+ ".TAB"
Set Map Redraw on
End If
Next
End If
End subJe ne pense pas que la ligne
If CnameAttendu<>"ID" Then
pour tester l'existence de mon champ soit académique mais c'est tout ce que j'ai trouvé pour l'instant... Faudrait-il lorsque je créé ce champ dans la table que je le place à une certaine position (premier champ de la table par exemple) pour ensuite ne tester que la valeur de la chaine du champ à cette position ?
Merci beaucoup d'avance pour votre aide....
Hors ligne
#2 Mon 28 June 2010 14:56
- jean94
- Participant assidu
- Date d'inscription: 13 Aug 2009
- Messages: 436
Re: [MapBasic 8.5]Problème sur l'existence d'un champ dans une table
Moi je crois que le bloc de code suivant
Code:
If CnameAttendu<>"ID" Then
Alter table name (add ID Integer) interactive
Update name Set ID = ROWID
Commit table name interactive
Open table "C:\Documents and Settings\GiraultV\Mes documents\MI\Tables\"+name+ ".TAB"
Set Map Redraw on
End Ifdevrait être en dehors de la boucle For car sinon su ton premier champ n'est pas "ID"..il va t'en créer un même si tu as un champ "ID" et te retrouve donc avec deux champ ID puis 3 puis 4 ... etc.
JF
Hors ligne
#3 Mon 28 June 2010 15:10
- V. Girault
- Participant actif
- Lieu: Clermont-Ferrand
- Date d'inscription: 22 Sep 2005
- Messages: 106
Re: [MapBasic 8.5]Problème sur l'existence d'un champ dans une table
J'étais en train de réfléchir au fait de passer ma variable champ en Alias lorsque tu m'envoyais ta réponse...
Ca fonctionne effectivement mieux ! Merci beaucoup ! ![]()
Hors ligne
Pages: 1
- Sujet précédent - [MapBasic 8.5]Problème sur l'existence d'un champ dans une table - Sujet suivant


