Modifier la structure d'un table sous VB [Résolu]

Messages postés
147
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
6 mars 2007
- - Dernière réponse : legenidt
Messages postés
1
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
22 juin 2011
- 22 juin 2011 à 20:07
Bonjour,

J'utilise le VFPOLEDB que m'a indiqué ThierryPerretier et cela fonctionne bien. Je dois maintenant modifier une table. J'ai fait le code suivant pour ajouter un champ de 6 caractères:

cnx.Open "Provider=vfpoledb;Data Source=c:"
cnx.Execute "SET NULL OFF"
cnx.Execute "SET EXCLUSIVE ON"
rst.CursorLocation = adUseServer
rst.Open "ALTER TABLE C:\toto.dbf ADD COLUMN n_fic TEXT(6)"

J'ai le message suivant lors de l'execution de la dernière ligne :

Erreur 3709
Impossible d'utiliser cette connexion pour effectuer cette opération.
Elle est fermée ou non valide dans ce contexte

La table est bien présente avec les bons attributs et lorsque je fais sous VFP :
USE c:\bledina.dbf exclusive
alter table c:\bledina.dbf add column n_fic char(6)

ma table est bien modifiée.

Merci pour votre aide.
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
103
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
6 juillet 2006
3
Merci
Bonjour,
Inutile de passer par un RecordSet.

cnx.Open "Provider=vfpoledb;Data Source=c:"
cnx.execute "alter table toto add column n_fic char(6) "

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ThierryPerretier
Messages postés
147
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
6 mars 2007
0
Merci
Bonjour,

Oui effectivement cela parait logique lorsque l'on a la solution sous les yeux.

Merci encore.
Commenter la réponse de cs_pledoux
Messages postés
147
Date d'inscription
mardi 12 octobre 2004
Statut
Membre
Dernière intervention
6 mars 2007
0
Merci
Bonjour,

Autre question :

J'ai créé un index sur ma table.

Comment je fais pour faire un équivalent de REINDEX sous VB.

Merci
Commenter la réponse de cs_pledoux
Messages postés
103
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
6 juillet 2006
0
Merci
Bonjour,

La commande REINDEX n'est pas autorisé par le driver VFPOLEDB.

Une solution consiste à créer un DLL en VFP.


DEFINE CLASS fox AS session OLEPUBLIC

PROCEDURE reindex(cTable as string)
   Use (ctable) Excl
   Reindex
   Use
ENDPROC

ENDDEFINE



Puis en VB :


Set oFox = CreateObject("fox.fox")
oFox.reindex c:\table

Commenter la réponse de ThierryPerretier
Messages postés
1
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
22 juin 2011
0
Merci
Bonsoir tous le monde , s'il vous j'ai un problème , je ne connais pas le code pour les boutons modifie et annuler sur un ecran de saisie.
Commenter la réponse de legenidt