Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Check for field name in table
Message
De
20/01/2011 14:36:23
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
01496634
Message ID:
01496724
Vues:
67
Maybe you refer to my Message ID: 1318377? In that message I suggest that you check the type of the field, if it's 'U' then the field does not exist. That is also what Sergey suggests.

>mmm - just for point of information - the solution i posted which i think is Tore's suggestion alerts me that the table does not contain a field called THH05 without an error message - i tried both yours and sergey's solution and got error messages when THH05 was not found - i will give you the full program which works and perhaps fill me in on the why your solution cannot be adapted:
>
>
>cfile = 'c:\db\prg\menu\past.DBF'
>use past
>if 'thh05'$cfile = .F.
>wait window "already changed"+CHR(13)+"Click to close" 
>else
>Alter Table c:\db\prg\menu\past.DBF Rename Column thh05 To thh11	
>wait window "Past database file has been changed " 	
>close all
>endif
>
>
>the following version produced error when rename command is encountered - ie it does not find the missing thh05 as field name as well sergey's.
>
>close all
>cfile='c:\db\prg\menu\past.DBF'
>SELECT 0
>USE (cFile) 
>IF TYPE(ALIAS() + '.' + thh05) <> "U" 
>  USE
>  Alter Table c:\db\prg\menu\past.DBF Rename Column thh05 To thh11
>else
>wait window "File has already been altered"
>ENDIF
>USE
>
>
>k
>
>
>
>>Or, you could use FIELD()
>>
>>SELECT 0
>>USE (cFile) 
>>IF Empty(Field('thh05'))
>>  USE
>>  Alter Table c:\db\past.DBF Rename Column thh05 To thh11
>>ENDIF
>>USE
>>
>>
>>
>>
>>>Not even close. You're checking for presence of string 'thh05' in the table name (including path). And comparing result of comparison with .F. is totally unnecessary. That what NOT is for
>>>
>>>SELECT 0
>>>USE (cFile) 
>>>IF TYPE(ALIAS() + '.' + thh05) <> "U" 
>>>  USE
>>>  Alter Table c:\db\past.DBF Rename Column thh05 To thh11
>>>ENDIF
>>>USE
>>>
>>>
>>>
>>>>sorry - i found solution in previous forum reply. I think Tore's help.
>>>>
>>>>cfile='c:\db\past.DBF' 
>>>>if 'thh05'$cfile = .F.
>>>>
>>>>k
>>>>etc
>>>>>what code could i use to verify if a field name is present in a table.
>>>>>
>>>>>Alter Table c:\db\past.DBF Rename Column thh05 To thh11
>>>>>
>>>>>
>>>>>this works fine however if the program is repeated thh05 is no longer present and an error message appears.
>>>>>
>>>>>i need an 'if' command to check for thh05
>>>>>
>>>>>thanks
>>>>>k
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform