Ajout champ dans table

ducker88 Messages postés 277 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 4 mai 2008 - 5 janv. 2006 à 10:26
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 - 7 janv. 2006 à 12:33
Bonjour a tous,

Voila j'aimerai créer une fonction qui permettrai d'ajouter un champ à une table.
Cette fonction dois avoir comme parametre le nom de la table, le chemin d'acces et le champ a rajouter.

J'ai essayé le code suivant qui ne marche pas :

PARAMETERS nom_table, nouveau_champ, chemin


USE (chemin+nom_table) IN 0 ALIAS la_table


CLOSE DATABASES all


ALTER table la_table ADD COLUMN nouveau_champ


USE IN la_table

On m'avais donné le code suivant :


ALTER TABLE table ADD COLUMN Champ c(10)


a quoi correspond c(10) ?

Merci.

duck88

3 réponses

michelatoutfox Messages postés 828 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 7 mai 2013 1
5 janv. 2006 à 19:43
C(10) veut dire que tu veux créer un champ de type caractère, de largeur 10.

tu dois toujours spécifier le type de champ que tu veux créer (C, ou bien I, ou L, ou D, etc...) et certains type de champ requièrent des paramètres supplémentaires (largeur, nombre de décimales)

dans ton code, je te conseille d'utiliser addbs(chemin)+table, comme ça tu es sur que le chemin est complet.
ton use... et close data.. sont inutiles, par contre une vérification de l'existence de la table, ainsi que de sa disponibilité, serait utile
0
ducker88 Messages postés 277 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 4 mai 2008
6 janv. 2006 à 08:45
Merci pour ta reponse, comment verifier la disponibilité de la table ?
Comment faire pour verifier que le champ n'existe pas dans la table ?

duck88
0
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
7 janv. 2006 à 12:33
Michel,

Completement hors du sujet, mais un jour j'ai fais une erreur de frappe et j'a utilisé le code suivant


CREATE CURSOR moncurseur (name b)

Et 'b' n'est pas un type de champs reconnue par VFP, mais cela me donne quand meme un champs interger. et meme ceci me donne le meme resultat


CREATE CURSOR moncurseur (name bool)

Alors il faut faire tres attention a la syntaxe.


CREATE CURSOR moncurseur (name name)

Alors que ceci me donne un champs numerique, puisque VFP semble tenir compte de la premiere lettre du deuxieme mot 'name'.

Mike Gagnon
0
Rejoignez-nous