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 ODBC ADODB

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

lenteur avec ODBC ADODB

Message  teebo le Mer 9 Jan 2008 - 10:52


Bonjour,

À chaque fois que j'envoie un SELECT * FROM TransactionHeader pour créer une facture a requête prend vraiment beaucoup de temps (3 à 4 minutes ou time out).

Y'a-t-il un moyen d'accélérer le processus ?


ADODB.
Connection CNN = ADOConnect();
Object outRecord = Type.Missing;
CNN.Execute(
"BEGIN_TRANSACTION_IN", out outRecord, -1);
ADODB.
Recordset rstTransHeader = new ADODB.Recordset();
//Header
rstTransHeader.Open(
"SELECT * FROM TransactionHeader", CNN, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockPessimistic, -1);
rstTransHeader.AddNew(
Type.Missing, Type.Missing);
rstTransHeader.Fields[
"InInvoiceType"].Value = 1;
rstTransHeader.Fields[
"InReference"].Value = Reference;
rstTransHeader.Fields[
"InDescription"].Value = Description;
rstTransHeader.Fields[
"InCurrentDay"].Value = -1;
rstTransHeader.Fields[
"InTransactionActive"].Value = -1;
ADODB.
Recordset rstCustomerData = new ADODB.Recordset();
rstCustomerData.Open(
"SELECT * FROM Customer WHERE RecCardPos=" + cardPos + "", CNN, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic, -1);
rstTransHeader.Fields[
"InTaxGroupCP"].Value = rstCustomerData.Fields["CuTaxGroupCP"].Value;

teebo

Nombre de messages : 9
Date d'inscription : 25/09/2007

Voir le profil de l'utilisateur http://www.sheweb.com

Revenir en haut Aller en bas

Re: lenteur avec ODBC ADODB

Message  teebo le Jeu 10 Jan 2008 - 11:48

Voilà ce qui résolu le problème :

SELECT * FROM TransactionHeader WHERE RecCardPos = 1

teebo

Nombre de messages : 9
Date d'inscription : 25/09/2007

Voir le profil de l'utilisateur http://www.sheweb.com

Revenir en haut Aller en bas

filtrer la requête...

Message  Lartis le Jeu 10 Jan 2008 - 12:03

Bonjour,

Je confirme. J'ai eu le même problème et je l'ai réglé d'une façon similaire:

RstTransAPData.Open "select * from TransAPHeader WHERE RecCardPos = 0", cnn, adOpenForwardOnly, adLockOptimistic

Le OpenForwardOnly améliore aussi peut-être un peu, et j'ai filtré dans mon cas avec RecCardPos = 0. Ça ne retourne rien, mais ce n'est pas grave puisqu'on se sert de ce recordset pour ajouter.

Petit commentaire: dans Access, ça vaut la peine d'ajouter un "DoEvents" à la fin de l'insertion. Sinon, si on fait plusieurs insertions, Access finit par ne plus répondre et être gelé tant que la dernière insertion n'est pas fini. Le DoEvents oblige à terminer l'insertion en cour avant de continuer.

Bonne journée!

_________________
Sylvain Laurence, partenaire, revendeur et développeur Acomba
Groupe Conseil Lartis Inc. www.lartis.com
avatar
Lartis

Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007

Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.

Voir le profil de l'utilisateur http://www.lartis.com

Revenir en haut Aller en bas

Re: lenteur avec ODBC ADODB

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