lenteur avec la conection ODBC Acomba
2 participants
- Jeremie
- Nombre de messages : 123
Date d'inscription : 11/08/2010
Fiche d'Entreprise
Nom de l'entreprise:
lenteur avec la conection ODBC Acomba
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.
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.
- PlanteG
- Nombre de messages : 1024
Ville : Québec
Date d'inscription : 11/07/2007
Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante
lenteur avec la conection ODBC Acomba
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 ?
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 ?
- Jeremie
- Nombre de messages : 123
Date d'inscription : 11/08/2010
Fiche d'Entreprise
Nom de l'entreprise:
Re: lenteur avec la conection ODBC Acomba
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.
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.
- PlanteG
- Nombre de messages : 1024
Ville : Québec
Date d'inscription : 11/07/2007
Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante
Re: lenteur avec la conection ODBC Acomba
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() ?
À 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() ?
- Jeremie
- Nombre de messages : 123
Date d'inscription : 11/08/2010
Fiche d'Entreprise
Nom de l'entreprise:
Re: lenteur avec la conection ODBC Acomba
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
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.
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.
- PlanteG
- Nombre de messages : 1024
Ville : Québec
Date d'inscription : 11/07/2007
Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante
Re: lenteur avec la conection ODBC Acomba
Jeu 12 Aoû 2010 - 13:35
Bien vrai que cela va régler un certain nombre de problèmes .J'ai vraiment hâte à la nouvelle version Acomba avec un vrais engin SQL ...soupir ...
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...
- Jeremie
- Nombre de messages : 123
Date d'inscription : 11/08/2010
Fiche d'Entreprise
Nom de l'entreprise:
Re: lenteur avec la conection ODBC Acomba
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 ...
Merci beaucoup.
J'avais vraiment pas pensé à celle l'à.
Edit.
Nop, même résultat ... uderflow exception ...
- PlanteG
- Nombre de messages : 1024
Ville : Québec
Date d'inscription : 11/07/2007
Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante
Re: lenteur avec la conection ODBC Acomba
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.
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.
- Jeremie
- Nombre de messages : 123
Date d'inscription : 11/08/2010
Fiche d'Entreprise
Nom de l'entreprise:
Re: lenteur avec la conection ODBC Acomba
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.
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.
- Jeremie
- Nombre de messages : 123
Date d'inscription : 11/08/2010
Fiche d'Entreprise
Nom de l'entreprise:
Re: lenteur avec la conection ODBC Acomba
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.
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.
- PlanteG
- Nombre de messages : 1024
Ville : Québec
Date d'inscription : 11/07/2007
Fiche d'Entreprise
Nom de l'entreprise: Informatique Gilles Plante
Re: lenteur avec la conection ODBC Acomba
Mar 24 Aoû 2010 - 10:26
Bien content que vous ayez trouvé une solution . 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 .
La programmation est parfois une science inexacte, ce qui nous force à implanter du code qui ne nous plait pas, mais ainsi va la vie .
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum