Acomba (Forum)
Pourquoi ne pas devenir membre du forum ?

Identifiez-vous ou Inscrivez-vous afin d'accéder à l'inrégralité du forum:
Accès à toutes les catégories du forum,
Entraide entre les 6 500 membres, et ce nombre s'accroît quotidiennement!

Notez que ce forum est indépendant de la société Acceo Solutions, éditrice du logiciel Acomba.
Connexion

Récupérer mon mot de passe


lenteur avec la conection ODBC Acomba

Voir le sujet précédent Voir le sujet suivant Aller en bas

lenteur avec la conection ODBC Acomba

Message  Jeremie le Mer 11 Aoû 2010 - 11:17

Bonjour,

J'ai un logiciel en vb.net 2003 qui se connecte à Acomba via l'ODBC.
J'essais de créé une commande et je dois lire les termes de paiement et les information du client, malheureusement, mon application Crash à chaque fois.

Une exception non gérée du type 'System.ArithmeticException' s'est produite dans system.windows.forms.dll

Informations supplémentaires : Overflow or underflow in the arithmetic operation.

De se que j'ai pu comprendre par Google, c'est que l'ODBC répond pas assez rapidement, se qui fait que mon application ne peux pas ouvrir la fenêtre.

Est-ce qu'il y aurais une solution ?

Merci.
avatar
Jeremie

Nombre de messages : 110
Date d'inscription : 11/08/2010

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur http://bourgeois-sc.com

Revenir en haut Aller en bas

lenteur avec la conection ODBC Acomba

Message  PlanteG le Mer 11 Aoû 2010 - 17:42

Hum,

je suis sceptique sur l'explication trouvée, puisque l'exception fait référence à une erreur d'arithmétique. Pourriez-vous copier dans un message le code de la routine (et le contexte de l'appel), et à quelle ligne le message d'erreur est associé ? Avec ces informations peut-être que l'on aura une idée de ce qui se produit.

Qu'avez-vous trouvé sur Google au sujet de l'ODBC ?
avatar
PlanteG

Nombre de messages : 995
Ville : Québec
Date d'inscription : 11/07/2007

Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante

Voir le profil de l'utilisateur http://ingp.ca

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  Jeremie le Jeu 12 Aoû 2010 - 9:06

Bonjour,

En faites, j'ai surtout chercher une définition de l'erreur d'arithmétique.
Puis
que par expérience, je sais que 90 % du temps c'est sois une division
par 0 ou une boucle infini. J'ai eu très très souvent cette erreur au
CÉGEP .

Le contexte est toujours le même, je lance une requête SQL via l'objet ODBC de .net

Il y a plusieurs endroit dans le code ou j'ai se problème est tous sont lié à Acomba.
Voici un exemple :

Try

Select Case iErpId
Case 1
objERP = New cErpAcomba
sDisplay = "ctDescription"
sValue = "ctNumber"
Case 2
Case Else
End Select

cbTermePaiement = cFormatCombobox.setDataInCombo(cbTermePaiement, objERP.getTermePaiment("") _
, sValue, sDisplay, True)
Catch ex As Exception

End Try


La
classe ERP est une interface et ERPAcomba n'est qu'une définition des
functions déclarer dans l'interface ERP. Mon logiciel sera connecté à au
moins un autre logiciel comptable un futur plus ou moins proche.

cbTermePaiement est un combo box qui contient la liste des terme de paiement.

La function getTermePaiment utilise un objet cSQLAcomba pour exécuter cette requête.
"SELECT ctNumber,ctDescription FROM CustomerTerm "

Dans la classe cSQLAcomba, je déclare un OdbcCommand que j'utilise pour exécuter la query.

J'obtient
l'erreur d'underflow uniquement quand je load une form et qui je veux
peupuler sois un datagrid, sois un combobox ou même des textbox.

Pour
pouvoir tester, J'ai été obligé de mettre un bouton LOAD en plein
milieux de la form ... sauf que ce n'est pas user friendly ni très
jolie.

Et ça casse aussi le loading des datas qui vienne de SQLServer.
Dans
mes autres fenêtres, ça causait pas trop de problème vu que les données
critique loadé automatiquement venait tous du serveur.

Dans le pire des cas, on va tester de se connecté à Acomba via Access, mais bon.


Merci et bonne journée.
avatar
Jeremie

Nombre de messages : 110
Date d'inscription : 11/08/2010

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur http://bourgeois-sc.com

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  PlanteG le Jeu 12 Aoû 2010 - 10:42

Avez-vous essayer de décomposer le tout, par exemple obtenir dans un premier temps les données (termes de paiement), puis par la suite charger le combobox ?

À moins que je ne me trompe, getTermePaiment() et cFormatCombobox() semblent des routines ou méthodes que vos avez créées, est-ce exact ? Que retourne getTermePaiment() ?
avatar
PlanteG

Nombre de messages : 995
Ville : Québec
Date d'inscription : 11/07/2007

Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante

Voir le profil de l'utilisateur http://ingp.ca

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  Jeremie le Jeu 12 Aoû 2010 - 12:04

Oui, j'ai tout décomposé.

formatCombobox fonctionne parfaitement quand les datas viennent de SQLServer , d'Acces voir d'un Fichier Excel.

GettermePaiement ne fonctionne que si je passe par on bouton et non si je passe par

Code:
   
Private Sub frmCommande_Load(ByVal sender As System.Object, _
                                          ByVal e As System.EventArgs) _
                                                    Handles MyBase.Load

        setText()
        setRight()

        dtpDate.Value = Today
        rnd = New Random

        If iQuotationId > 0 Then
        '    bindQuotation()
        End If

        'bindCombo() (C'est ici que je vais peuplé le combobox)

        If iCommandeId > 0 Then
            bindCommande()
        End If

    End Sub

GettermePaiement returne un dataset qui est décomposé par formatCombobox ou par n'importe qu'elle autre méthode futur.

Le problème n'est pas GettermePaiement, mais le lien entre Acomba et .net qui est pas suffisamment rapide lors de l'ouverture des fenêtre.
J'ai le même crash si je load le client, le vendeur, la liste des types de produit, la liste des groupes de produit ...

Comme je disais dans mon post initial, j'ai se problème Quasiment partout ou je dois aller chercher des informations dans Acomba, sauf que dans les autres Form, ça ne causait pas de problème vu que utilisateur ne devait que cliquer deux fois sur le bouton ou faire refresh pour avoir une liste X.

Sauf que là ... mon système est déstabilisé, au pire, je verrais avec mon patron la semaine prochaine, si pas possible de corriger le problème on transférera la gestion des Terme de paiement dans mon logiciel.

J'ai vraiment hâte à la nouvelle version Acomba avec un vrais engin SQL ...soupir ...

J'ai vraiment l'impression que le problème vient de la gestion ODBC du .net 2003.

M'enfin après deux ans, j'ai toujours finis par trouver le moyen de contourner, mais ça devient chiant à la longue.
avatar
Jeremie

Nombre de messages : 110
Date d'inscription : 11/08/2010

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur http://bourgeois-sc.com

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  PlanteG le Jeu 12 Aoû 2010 - 13:35

J'ai vraiment hâte à la nouvelle version Acomba avec un vrais engin SQL ...soupir ...
Bien vrai que cela va régler un certain nombre de problèmes .

Le pilote ODBC n'est pas reconnu pour sa grande vitesse, et attendant il faut faire avec. Il y la solution du SDK, mais ça demande pas mal plus de travail.

Pour en revenir à votre problème, l'événement _Load se produit au moment où la fenêtre est créée, et le timing peut devenir un cauchemar. J'ai fouillé mais je n'ai pas réussi à trouver si l'événement est déclenché au début de la création de la fenêtre, ou une fois qu'elle est complétée. Par contre, il semble que l'événement _Activate se produit plus tard dans la chaîne des événements. Le code qui charge le combobox pourrait-il être logiquement associé à l'événement _Activate ? Ou bien pour éviter le délai dans l'événement _Load, l'appel à getTermePaiment() pourrait-il être fait avant de faire apparaître la fenêtre ? Ce n'est peut-être pas élégant, mais si ça marche...
avatar
PlanteG

Nombre de messages : 995
Ville : Québec
Date d'inscription : 11/07/2007

Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante

Voir le profil de l'utilisateur http://ingp.ca

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  Jeremie le Jeu 12 Aoû 2010 - 13:38

Si ça fonctionne, votre suggestion sera mieux qu'un gros bouton

Merci beaucoup.

J'avais vraiment pas pensé à celle l'à.

Edit.

Nop, même résultat ... uderflow exception ...
avatar
Jeremie

Nombre de messages : 110
Date d'inscription : 11/08/2010

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur http://bourgeois-sc.com

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  PlanteG le Jeu 12 Aoû 2010 - 13:49

Manque de chance .

Se peut-il que le combobox ne soit pas créé au moment de le charger ? Si ça ne marche pas avec _Activate, ça devrait fonctionner si le foutu recordset est empli à l'avance, à moins que le problème ne soit ailleurs.
avatar
PlanteG

Nombre de messages : 995
Ville : Québec
Date d'inscription : 11/07/2007

Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante

Voir le profil de l'utilisateur http://ingp.ca

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  Jeremie le Jeu 12 Aoû 2010 - 14:00

En .Net, il y a pas de recordset, mais je comprend se que vous voulez dire.
Non, le dataset est remplis à la demande ...

Mais vous me donné un piste.

Le problème serai une sorte de conflit entre .net qui veux construire sont interface (combobox, datagrid ...) et l'odbc qui lui cherche ramener les données.

D'où l'underflow ...

Mouiap, bon c'est tiré par les cheveux.

Bon, je vais chercher autrement.
Vais finir les autres fonctionnalité.

Merci pour votre aide.
avatar
Jeremie

Nombre de messages : 110
Date d'inscription : 11/08/2010

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur http://bourgeois-sc.com

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  Jeremie le Mar 24 Aoû 2010 - 10:15

Voila, après une semaine de vacance, j'ai trouvé une solution plus esthétique qu'un bouton en plein milieux.

Suffit d'utiliser un timer que l'on start à la fin du load de la form.
Le code du timer s'exécute 5 secondes après la fin de l'affichage de la fenêtre.

Une fois les données loader d'Acomba,on détruit le timer et c'est ni vue ni connu.

Merci pour votre aide.
avatar
Jeremie

Nombre de messages : 110
Date d'inscription : 11/08/2010

Fiche d'Entreprise
Nom de l'entreprise:

Voir le profil de l'utilisateur http://bourgeois-sc.com

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  PlanteG le Mar 24 Aoû 2010 - 10:26

Bien content que vous ayez trouvé une solution Very Happy . Il y avait bien un problème de timing avec lequel il fallait composer.

La programmation est parfois une science inexacte, ce qui nous force à implanter du code qui ne nous plait pas, mais ainsi va la vie Razz .
avatar
PlanteG

Nombre de messages : 995
Ville : Québec
Date d'inscription : 11/07/2007

Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante

Voir le profil de l'utilisateur http://ingp.ca

Revenir en haut Aller en bas

Re: lenteur avec la conection ODBC Acomba

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum