Forum d'entraide Acomba
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.

Rejoignez le forum, c’est rapide et facile

Forum d'entraide Acomba
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.
Forum d'entraide Acomba
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Connexion
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

Aller en bas
avatar
teebo
Nombre de messages : 9
Date d'inscription : 25/09/2007
http://www.sheweb.com

lenteur avec ODBC ADODB Empty lenteur avec ODBC ADODB

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;
avatar
teebo
Nombre de messages : 9
Date d'inscription : 25/09/2007
http://www.sheweb.com

lenteur avec ODBC ADODB Empty Re: lenteur avec ODBC ADODB

Jeu 10 Jan 2008 - 11:48
Voilà ce qui résolu le problème :

SELECT * FROM TransactionHeader WHERE RecCardPos = 1
Lartis
Lartis
Nombre de messages : 640
Ville : Laval
Date d'inscription : 03/04/2007

Fiche d'Entreprise
Nom de l'entreprise: Groupe Conseil Lartis Inc.
http://www.lartis.com

lenteur avec ODBC ADODB Empty filtrer la requête...

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
lenteur avec ODBC ADODB Groupe-conseil-lartis-inc-acomba200
Contenu sponsorisé

lenteur avec ODBC ADODB Empty Re: lenteur avec ODBC ADODB

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