Bug en exe et pas en debug

cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009 - 7 oct. 2008 à 20:21
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009 - 8 oct. 2008 à 13:56
Bonsoir à toutes et à tous,

Voilà le plan, J'ai une application qui travaille avec une base de donnée access (la base est sur un serveur).
Tout fonctionne correctement en mode debug et en mode release. J'ai créé un setup avec l'utilitaire de VB.NET, tout marche très bien. Sauf que :
lors de l'utilisation avec une demande d'ajout de données à ma base ça plante (en phase de test et donc sans visual basic sur le PC)
Tout autre ajout fonctionne. Je corse le problème : Mon exe fonctionne bien sur mon pc et le bug apparait sur le poste de l'utilisatrice (ce qui est somme toute, fort ennuyeux)

Qu'est-ce qui peut occasion un dysfonctionnement de ce type ? (pour info, j'ai framework 2 sur les deux postes - Et l'utilisatrice fonctionne sur un réseau d'entreprise ... bancale).

thierry la fronde

12 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 oct. 2008 à 20:27
"...lors ..d'une demande d'ajout de données à ma base ça plante..."     "...Tout autre ajout fonctionne..."

J'ai pas tout compris, là!

"...en phase de test et donc sans visual basic...."
La je comprend encore moins. Si tu n'as pas VB c'est que tu n'es plus en phase de test (debug)

"...sur un réseau d'entreprise ... bancale...."
Dans le détail, ça signifie quoi ???

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
7 oct. 2008 à 20:40
je précise donc .
Mode debug réservé au deboggage
Phase de test c'est le recettage (comme on dit). L'appli est installé sur les postes utilisateurs pour vérifier qu'il n'y a pas de dysfonctionnement, auquel cas ce serait retour en mode debug. Cela permet de recueillir des informations de la part des utilisateurs.
"
"...lors ..d'une demande d'ajout de données à ma base ça plante..."     "...Tout autre ajout fonctionne..."
J'ai pas tout compris, là!
"
J'ai plusieurs formulaires qui permettent d'ajouter des données et qui fonctionnent sans problème, celui qui est en cause fonctionne très bien si je ne rempli pas un des champs.

"...sur un réseau d'entreprise ... bancale...."
Dans le détail, ça signifie quoi ???
quelques symptômes ? : lenteur, impossibilité d'envoyer des mails car le smtp est rejeté avec outlook, une appli qui fonctionne en session admin mais pas sur les autres sessions.... je ne sais pas si cela a un lien mais.. autant le préciser.

Finalement j'ai essayé d'être concis dans mon premier message, j'aurais pas dû...

thierry la fronde
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 oct. 2008 à 20:58
PB de réseau : rien de bien exceptionnel apparemment. Quelques problèmes de configuration du serveur et problèmes de droits utilisateurs certainement.

"...J'ai plusieurs formulaires qui permettent d'ajouter des données et qui
fonctionnent sans problème, celui qui est en cause fonctionne très bien
si je ne rempli pas un des champs. ...."
Par fainéantise, j'aurais tendance à dire que le problème vient donc de ce champ.
Il est de quel type ?, t'as pas un message d'erreur qui va bien avec ton problème ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
7 oct. 2008 à 21:07
J'ai pensé à un problème de champ, mais si c'était le cas, le bug apparaitrait en mode debug.
C'est un simple champ texte récupéré sur un textbox. j'ai traité les apostrophes pour être utilisable dans la requête sql.

Et le message d'erreur ?? je suis bien en peine pour le moment car je n'ai pas ce message sur mon poste. Il me semble qu'il me dit simplement que ma requête comporte une erreur de syntaxe.

...
If Me.TBSavoirFaire.Text <> String.Empty Then
                        LeSavoirFaire = ApostrophePourSQL(Me.TBSavoirFaire.Text)
                    End If
...
 Me.TableEntreprise.Rows(Lindex).Item("SavoirFaire") = LeSavoirFaire
......

 Try
                            ProceduresCommunes.OuvrirConnexionALaBase()
                            LeDataAdapter = New OleDbDataAdapter("SELECT * FROM tEntreprise", MaConnexion)
                            LeDataAdapter.Fill(Me.LeDataSet, "tEntreprise")
                            Dim cmdBuilder As New OleDbCommandBuilder(Me.LeDataAdapter)
                            Me.LeDataAdapter.UpdateCommand = cmdBuilder.GetUpdateCommand
                            LeDataAdapter.Update(Me.LeDataSet, "tEntreprise")
                            ProceduresCommunes.FermerLaConnexionALaBase()
...

mais comme le message d'erreur intervient comme une exception non gérée, j'en déduis qu'elle n'est pas dans ma clause TRY..

thierry la fronde
0

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

Posez votre question
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
7 oct. 2008 à 21:07
pour le réseau.. je pense comme toi..

thierry la fronde
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
7 oct. 2008 à 21:28
Deplace ton try ou mets un try dans la methode appelante.

Ensuite la fermeture de la connexion est a mettre dans un bloc finally pour éviter d'avoir des connexions non fermée.

Il y a peut etre des probleme de cast essaie de mets option strict et option explicit sur ton projet
en dotnet c'est presque obligatoire.

Bon courage.

Bon coding
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
7 oct. 2008 à 21:39
Ah oui bien vu le Strict et explicit .. j'ai du ménage à faire.. et dire que je le savais

Je vais voir pour le inséré un autre bloc try... je donnerais des nouvelles
merci pour les pistes.

thierry la fronde
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
7 oct. 2008 à 22:55
dans les catch appelle une fonction log
l'erreur vas dans un string et un boolean est mis a true
a la fin le log est enregistré et une option pour le lire directement

exemple

Sub travail()

Try

'ici ton travail

Catch ex
As ExceptionMsgBox(ex.Message)

log(ex.Message &

" " & Now)

End
Try

End
Sub

Sub log(
ByVal msg
As
String)faute =

True

My.Computer.FileSystem.WriteAllText(
My.Application.Info.AssemblyName &
".log", msg,
True)OnFerme()

End
Sub

Sub OnFerme()c()

'est quand l'appli ferme qu'on appelle cette sub

If faute =
True
Then

If MsgBox(
"1 ou plusieurs erreuers de traitement voulez vous voir le log?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes
ThenProcess.Start(

"notepad.exe",
My.Application.Info.AssemblyName &
".log")

End
If

End
If

End
Sub
Bonjour chez vous !
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
8 oct. 2008 à 11:19
Je vous remercie de votre aide, et je vais tester de suite le log. Toutes mes corrections avec les options n'ont rien changé, mais j'en reviens au réseau.
Si je met ma base en local sur mon Pc le bug n'apparait pas, si ma base est sur le serveur, le bug apparait. Je reste perplexe.

thierry la fronde
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
8 oct. 2008 à 11:27
c'est une base access ???

Bonjour chez vous !
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
8 oct. 2008 à 13:10
alors en fait le log ne me donnait pas plus d'information. et l'erreur
venait d'un champ qui refuse une chaine vide. alors que dans ma base
NULL est autorisé et chaine vide est autorisée aussi.

Toujours est-il que je ne sais toujours pas pourquoi il y a une erreur
quand la base est sur le réseau et pas quand elle est sur mon PC ..

thierry la fronde
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
8 oct. 2008 à 13:56
oui c'est une base access

thierry la fronde
0
Rejoignez-nous