Modifier la structure d'un table sous VB

Résolu
cs_pledoux Messages postés 147 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 6 mars 2007 - 15 nov. 2004 à 15:28
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.

5 réponses

ThierryPerretier Messages postés 103 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 juillet 2006 1
15 nov. 2004 à 22:20
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) "
1
cs_pledoux Messages postés 147 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 6 mars 2007
16 nov. 2004 à 09:49
Bonjour,

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

Merci encore.
0
cs_pledoux Messages postés 147 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 6 mars 2007
24 nov. 2004 à 18:42
Bonjour,

Autre question :

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

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

Merci
0
ThierryPerretier Messages postés 103 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 juillet 2006 1
24 nov. 2004 à 19:23
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

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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.
0
Rejoignez-nous