dp_favresa
Messages postés132Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention11 mai 2010
-
21 nov. 2008 à 15:30
dp_favresa
Messages postés132Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention11 mai 2010
-
2 déc. 2008 à 11:20
Bonjour,
J'ai créé une petite appli VB2005 qui doit me permettre une mise à jour dans des tables Foxpro indépendantes. Mon code fonctionne, mais seulement si la table à modifier n'est pas en cours d'utilisation. Selon ce que j'ai pu entrevoir dans divers forums, j'ai l'impression qu'il manque un paramètre genre "accès non exclusif" mais ne trouve pas lequel.
O_Conn = New OleDbConnection(O_Txt)
O_Conn.Open()
O_Cmd = New OleDbCommand(O_sql1, O_Conn)
O_Cmd.ExecuteNonQuery()
O_Conn.Close()
Principes de l'appli :
- sélection de la table (OpenFileDialog), récupération du chemin et du nom de fichier
- charger un DataGrid à partir d'un DataSet
- sélection du record à modifier par le DataGrid, envoi des données dans des TextBox
- update sql
Merci d'avance à qui me dépannera.
Bon(nes) courage, développement, salutations...
(choisissez ce qui vous convient) dp
dp_favresa
Messages postés132Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention11 mai 2010 2 déc. 2008 à 11:20
Bonjour,
J'ai eu à nouveau un peu de temps à consacrer à mon appli. Le problème n'était pas au niveau de l'accès. Après pas mal d'essais dans lesquels j'ai encodé en dur une requête update après l'autre pour chaque champs, j'ai remarqué qu'un de ces champs générait systématiquement une erreur. Hors ce champ, cela fonctionne bien.
J'ai eu quelques soucis avec la constitution de ma requête :
"update table set champ= ' " & textbox.text & "' "
Pourquoi ??
En faisant :
variable = textbox.text
"update table set champ= ' " & variable & "' "
Plus aucun problème. Du moment que ça fonctionne comme ça, je ne vais pas chercher plus loin.
Merci.
Bon(nes) courage, développement, salutations...
(choisissez ce qui vous convient) dp
dp_favresa
Messages postés132Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention11 mai 2010 24 nov. 2008 à 08:30
Bonjour,
La table peut être utilisée (en lecture seule) par son appli d'origine développée en Foxpro en externe, c'est le programmeur de cette appli qui m'a indiqué de chercher vers conflit d'accès. Problème, nous ne pouvons pas vraiment nous parler, il est nul en VB, comme je suis nul en Foxpro.
J'ai eu passablement de peine à trouver la méthode utilisée dans mon code, lors de recherche sur vfpoledb on retrouve bien trop souvent oledb tout court avec des traitements basés sur Access. Si tu a un lien qui me montre les 3 techniques dont tu parles, je suis preneur.
Pour terminer, je reçois des messages d'erreur différents selon la table modifiée, donc je crois qu'il doit s'agir de plus que des droits d'accès, je vais chercher plus loin.
Merci et bonne journée.
Bon(nes) courage, développement, salutations...
(choisissez ce qui vous convient) dp
michelatoutfox
Messages postés828Date d'inscriptionmardi 5 octobre 2004StatutMembreDernière intervention 7 mai 20131 24 nov. 2008 à 10:10
Bonjour,
le VFPOLEDB SP2 est téléchargeable sur le site de Microsoft, et la version précédente comportait le fichier d'aide (je n'ai pas vérifié pour cette version). c'est dans l'aide que tu trouveras les 3 techniques dont je parle.
En principe, le fichier d'aide est installé dans \Program Files\Microsoft Visual FoxPro OLE DB Provider\Doc
Si tu ne le trouves pas, je peux te le faire passer par mail (mon adresse est michelvfplevy [supprime_ceci] @ yahoo.fr)
En fox, on peut parfaitement ouvrir une table en lecture seule ET en accès exclusif. On peut aussi ouvrir en mode SHARED, mais poser des verrous de fichier par FLOCK qui empèchent tout accès concurrentiel. C'est une part de la richesse de fox, justement, et il est vraissemblable que ce soit l'origine de ton problème.
quels sont les messages d'erreur que tu reçois? on va peut-être pouvoir déterminer le pb par ce biais là.