Accueil > Forum > > > > Exécution ne finie pas...
Exécution ne finie pas...
mercredi 5 juillet 2006 à 12:01:41 |
Exécution ne finie pas...

woot6768
|
Salut à tous, Voilà, dans mon programme, je dois travaillé sur une table access qui comporte environ 16 000 entrées! Et lorsque je fais mes test de chaque fonction avec un 'limiteur' qui ne traite donc qu'une centaine de champs, l'éxécution ce passe bien. Mais lorsque je fais le traitement sur toute la table, l'éxécution ne termine pas même si l'on ne teste qu'une fonction! Par exemple, cette fonction est en éxécution depuis 30min! : publicvoid NettoyeTitre(){InitialiserCorrespondances(); string chaine;string lineCmd = "UPDATE M9004_CONTACTSYNC SET TITLE = '{0}' WHERE CONTACTSYNCID = {1}";string req = "SELECT TITLE ,CONTACTSYNCID FROM M9004_CONTACTSYNC";ADODB. Recordset Recordset = new ADODB.Recordset();Recordset.Open(req, chaineDeConnection2, ADODB. CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic, -1);Collection<string> exclusC = GetExclusCommunes;if (Recordset.RecordCount > 0){Recordset.MoveFirst(); while (!(Recordset.EOF)){chaine = "";ADODB. Field field = Recordset.Fields["TITLE"];if (field.Value != DBNull.Value){if (Convert.ToString(Recordset.Fields["TITLE"]).Length > 0){chaine = Recordset.Fields[ "TITLE"].Value.ToString();chaine = (CleanEspaces(chaine)).Trim(); chaine = Cleanup((Recordset.Fields[ "TITLE"].Value).ToString(), limite_autres);chaine = EpurerNom(chaine, exclusC); } } lineCmd = String.Format(lineCmd, chaine.Trim(), Recordset.Fields["CONTACTSYNCID"].Value);OdbcCommand cmd = newOdbcCommand(lineCmd, connection2);cmd.ExecuteNonQuery(); Recordset.MoveNext(); } } MessageBox.Show("Fonction NettoyeTitre() terminée.");Recordset.Close(); } Je voudrais donc savoir si le problème viens de mon code ou si c'est simplement la table qui est trop grande. Merci _________________________________________________________________________ Woot
|
|
mercredi 5 juillet 2006 à 12:13:36 |
Re : Exécution ne finie pas...

bernie666
|
Si ton pc est un 486Dx2 ... sa peut poser quelques soucy ... mais 16 000 entrées normalement il de devrai pas y avoir de probleme ... si le traitement de ta fonction est lourd => tu peux développer un process a coté qui te cleanra tes titres en asynchrone (ou au moins utiliser les threads) comme ca ton application ne seras pas bloquée
|
|
mercredi 5 juillet 2006 à 13:23:05 |
Re : Exécution ne finie pas...

gcorbineau
|
Juste un petit truc je n' ai pas vu dans ta boucle:
Recordset.MoveFirst();
while (!(Recordset.EOF)){
.....
}
Une fonction permettant d'avancer à l'enregistrement (Recordset.MoveNext ou Recordset.Next)
|
|
mercredi 5 juillet 2006 à 14:07:05 |
Re : Exécution ne finie pas...

woot6768
|
gcorbineau
-> Il y a un Recordset.MoveNext, c'est la dernière ligne de la fonction;) juste après l'éxécution de la commande odbc. bernie666 -> Je ne comprend pas trop ce que tu veu dire... Mais en faite, ce que je ne comprend pas c'est que lorsque j'effectue un debugg, ça fonctionne très bien! De même, lorsque l'on limite le nombre d'entrées à traiter. De plus, il y a autre chose que je ne comprend pas, lorsque je click sur mon bouton démarrer, je copie la base d'origine pour la mettre dans un autre répertoire, histoire de ne pas détruire ma base. Mais le faite est que dès que j'éxécute une fonction, la base est mal copier, exemple : 1ere exemple, lorsque la base est bien copier : privatevoid cmdDemarrer_Click(object sender, EventArgs e){ File.Copy("C:\\Documents and Settings\\Administrateur\\Mes documents\\Wouter Tjon Stage\\Contacts.mdb", "C:\\Documents and Settings\\Administrateur\\Mes documents\\Wouter Tjon Stage\\ProjetrecoupementContacts\\Contacts.mdb", true);//Affectation de la chaine de connection à la connection à la base :connection2.ConnectionString = chaineDeConnection2; // On mets le timeout au minimun (pour éviter d'attendre X secondes si erreur) :connection2.ConnectionTimeout = 1; try{ //Ouverture de la connection à la seconde base :connection2.Open(); } catch (OdbcException exception){ MessageBox.Show(exception.ToString());return;} MessageBox.Show("Normalement ça a copier la table...", "Table copier?");//NettoyeAdresse();} Et là, lorsque j'éxécute 'NettoyeAdresse(), il me vide ma table mais me laisse le nom des champs! : privatevoid cmdDemarrer_Click(object sender, EventArgs e){ File.Copy("C:\\Documents and Settings\\Administrateur\\Mes documents\\Wouter Tjon Stage\\Contacts.mdb", "C:\\Documents and Settings\\Administrateur\\Mes documents\\Wouter Tjon Stage\\ProjetrecoupementContacts\\Contacts.mdb", true);//Affectation de la chaine de connection à la connection à la seconde base :connection2.ConnectionString = chaineDeConnection2; // On mets le timeout au minimun (pour éviter d'attendre X secondes si erreur) :connection2.ConnectionTimeout = 1; try{ //Ouverture de la connection à la seconde base :connection2.Open(); } catch (OdbcException exception){ MessageBox.Show(exception.ToString());return;} MessageBox.Show("Normalement ça a copier la table...", "Table copier?");NettoyeAdresse();} Voilà tout mes problèmes... En éspérant les résoudres grâce à votre aide. _________________________________________________________________________ Woot
|
|
mercredi 5 juillet 2006 à 14:13:26 |
Re : Exécution ne finie pas...

bernie666
|
"Et là, lorsque j'éxécute 'NettoyeAdresse(), il me vide ma table mais me laisse le nom des champs! :" <= tu veux faire quoi exactement ? vider la table ET le nom des champs ? si oui => DROP TABLE ...
|
|
mercredi 5 juillet 2006 à 14:21:23 |
Re : Exécution ne finie pas...

woot6768
|
Non en faite je souhaite enlever des espaces, les accents, mettre en majuscule, supprimer les caractères spéciaux... En gros ôter tous ce qui est inutile mais garder une lisibilité de la table, donc faire une éspèce de 'compression'. Donc je souhaite garder tous mes champs, toutes mes colonnes mais justement, le problème est que quand j'éxécute une fonction pour nettoyer un champs, il me supprime toutes les entrées de la table! (ce que je ne souhaite donc pas!) En faite j'ai l'impression qu'il me copie mal la table, mais ce n'est pas le cas vu que quand je n'éxécute pas de fonction, il le fait très bien. Donc le problème doit ce situer dans une optimisation du code mais je ne sais pas ou, d'où mon topic! Si quelqu'un a une idée...
_________________________________________________________________________ Woot
|
|
mercredi 5 juillet 2006 à 14:25:12 |
Re : Exécution ne finie pas...

bernie666
|
Oui ton probleme de base comme tu me l'as dit est un probleme de temps d'execution de ta fonction ... => pour ne pas bloquer ton application => utilise des Threads
|
|
mercredi 5 juillet 2006 à 14:28:07 |
Re : Exécution ne finie pas...

woot6768
|
D'accord je vais voir ça, mais bon il faut d'abord que je me documente, je n'ai jamais utilisé les threads...
_________________________________________________________________________ Woot
|
|
mercredi 5 juillet 2006 à 15:55:06 |
Re : Exécution ne finie pas...
|
mercredi 5 juillet 2006 à 15:56:58 |
Re : Exécution ne finie pas...

woot6768
|
Pas de soucis ;)
_________________________________________________________________________ Woot
|
|
Cette discussion est classée dans : recordset, chaine, fields, title, adodb
Répondre à ce message
Sujets en rapport avec ce message
DataSet ou Recordset? [ par woot6768 ]
Salut à tous,Voilà, je me pose une quetion suite à un souci, lorsque je souhaite effectuer des modifications dans un ou plusieurs champs d'une table a
Erreur ! [ par woot6768 ]
Je vous présente mon code avec les erreurs générées par la compilateur que je n'arrive pas à déboger.publicvoid<font size=
Deux RecordSet dans une fonction. [ par woot6768 ]
Bonjour tous le monde,J'aurais simplement une question à poser.Est-il possible d'utiliser deux Recordset dans une même fonction?Je vous fournis un exe
Recordset ou DataReader? [ par woot6768 ]
Bonjour,Dans le cadre de mon projet, je dois modifier une base de données pour la compresser, est-il plus judicieux d'utiliser les recordset ou les da
Extraire une chaine d'un combobox [ par boninou ]
Bonjour à tous !J'ai une combobox dans laquelle ce trouve les noms et prénoms des utilisateurs.Les items sont donc comme ceci : "NOM Prénom".Or j'aime
[C#] [1.1] Extraction dans une chaine [ par SupaLou ]
Bonjour tout le monde.Est-il possible dans une chaine de caractères d'extraire un ensemble de caractère se situant entre deux caractères connus?? Humh
Limitation de longueur d'une chaine SQL [ par olivierbalagizi ]
Chers programmeurs, bonjour.J'aimerais savoir s'il ya une limitation au nombre de caractères que peut contenir une requête SQL parce que je dois ecrir
Chaine de connexion ? [ par EmacLi ]
Bonjour,J'ai une petite question !Lorsque l'on arrive dans un formulaire qui permet de paramétrer une connexion à une base de données, on trouve (dans
minuscules = majuscules [ par Jojo092 ]
Bonjour tout le monde,je sais que je suis envahissant, mais j'ai un autre petit souci et ayant une MSDN très restreinte, je n'ai pas trop le choix que
décomposition chaine [ par babe59 ]
Bonjour,Je reçois une chaine de caractères contenant un ensemble de champs de taille variable et sans séparateur (ch001ch02ch0003ch004...).J'aimerai e
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYSTECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYS par ROMELARD Fabrice
Speakers : Lionel Limozin et Alain Marty La session commence par une découverte de SharePoint à travers la mise en place d'un environnement SharePoint pour la gestion des Sessions animées par BeWise. Le besoin est très ba...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|