begin process at 2012 02 15 22:15:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

SQL

 > 

Ma requête ne fonctionne qu'à moitié ! avez-vous une idée ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ma requête ne fonctionne qu'à moitié ! avez-vous une idée ?

mercredi 17 décembre 2008 à 13:38:46 | Ma requête ne fonctionne qu'à moitié ! avez-vous une idée ?

cvbperso

Bonjour,
 
Je travaille sur une base Oracle ! Je n'ai pas de problème pour récupèrer les données. En ce qui concerne l'insertion, la mise à jour, j'ai quelques soucis !
 
Démarche ==>  j'arrive à insérer les données. Je supprime les données manuellement et je refais l'action. Quand je veux réinsérer ces mêmes données, ça ne fonctionne pas et j'ai un message d'erreur, au bout de quelques secondes !

 
Voici mon erreur :
 

Le CLR n'a pas pu effectuer de transition du contexte COM 0x10df448 au contexte COM 0x10df5b8 pendant 60 secondes. Le thread qui possède le contexte/cloisonnement de destination est probablement en train d'attendre ou de traiter une opération très longue sans pompage des messages Windows. Cette situation a généralement des effets négatifs sur les performances et peut parfois entraîner le blocage de l'application ou une utilisation ininterrompue de la mémoire. Pour éviter ce problème, tous les threads STA (Single Threaded Apartment) doivent utiliser des primitives d'attente de pompage (par exemple CoWaitForMultipleHandles) et pomper de manière régulière les messages lors des opérations qui sont longues à s'exécuter.

et voici mon code : 
 

Code :
  1. Dim oradb As String = "Data Source=(DESCRIPTION=(ADDRESS_LIST=" _
  2.                               + "(ADDRESS=(PROTOCOL=TCP)(HOST=172.30.32.92)(PORT=1521)))" _
  3.                               + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" _
  4.                               + "User Id=xxxxx;Password=xxxxx;"
  5.    Dim conn As New OracleConnection(Me.oradb)
  6.    Dim myOracleTransaction As OracleTransaction = conn.BeginTransaction()
  7.    Dim myOracleCommand As OracleCommand = conn.CreateCommand()
  8.    myOracleCommand.CommandText = "INSERT INTO CATEGORIES (CODE_CATEGORIE,NOM_CATEGORIE,DESCRIPTION) VALUES(10,'toto','titi')"
  9.    myOracleCommand.ExecuteNonQuery()
  10.    myOracleTransaction.Commit()
  11.    conn.Close()

Avez-vous une idée de l'origine de l'erreur, svp ?  
D'avance merci pour les réponses
Cvb

ps: je travaille sous Visual Studio 2008 (Framework 3.5)

mercredi 17 décembre 2008 à 15:46:13 | Re : Ma requête ne fonctionne qu'à moitié ! avez-vous une idée ?

thome76

Salut,
Je voudrais savoir le résultat au niveau base? Quand il exécute ton code et où est la ligne de code en erreur précisément?
T'as vérifié que ta les bon nom de champs et le bon nom de table dans ton code?
T'as vérifié que les paramètres de connection (dans ton code) sont bien les mêmes que dans le tns names?
mercredi 17 décembre 2008 à 16:15:02 | Re : Ma requête ne fonctionne qu'à moitié ! avez-vous une idée ?

cvbperso

Bonjour,

Oui j'ai bien vérifier tout cela, la requête est correct ! Plusieurs choses se produise au niveau de la base de donnée.

1- Quand j'exécute la première fois le code, les données sont écrites dans la base dans aucun problème, le commit s'exécute bien....

2- Une fois que je supprime les données à la main à partir de "Oracle SQL Devellopper" et que je réexecute le code afin de renvoyer la requête INSERT, c'est à ce moment là que mon soucis intervient ! Il faut que j'execute le Commit depuis "Oracle SQL Devellopper" pour que les données envoyé depuis le programme apparaissent !

Si je n'execut pas se COMMIT, le programme 30 secondes plutard !


Le CLR n'a pas pu effectuer de transition du contexte COM 0x10df448 au contexte COM 0x10df5b8 pendant 60 secondes. Le thread qui possède le contexte/cloisonnement de destination est probablement en train d'attendre ou de traiter une opération très longue sans pompage des messages Windows. Cette situation a généralement des effets négatifs sur les performances et peut parfois entraîner le blocage de l'application ou une utilisation ininterrompue de la mémoire. Pour éviter ce problème, tous les threads STA (Single Threaded Apartment) doivent utiliser des primitives d'attente de pompage (par exemple CoWaitForMultipleHandles) et pomper de manière régulière les messages lors des opérations qui sont longues à s'exécuter.

Je me pose la question de savoir s'il n'y a pas une histoire de Buffer, ou quelques chose comme cela ! je ne comprends pas le problème. Je travaille sous Oracle 10g

D'avance merci :)

++

mercredi 17 décembre 2008 à 17:29:36 | Re : Ma requête ne fonctionne qu'à moitié ! avez-vous une idée ?

cvbperso

Bonsoir,

J'ai trouvé l'erreur ! En fait j'avais "Sql Devellopper" d'ouvert en même temps que j'executé mon code ! Il s'avère (pour une raison inconnue) que le logiciel prenait le pas sur mon programme ! Il est vrai que je m'authentifier deux fois sur la base avec des identifiants identiques...

En fermant "Sql Devellopper", tout est rentré dans l'ordre, je peux insérer les données....:)

D'avance merci de vous être penché sur mon soucis :)
Bonne soirée :)
++
mercredi 17 décembre 2008 à 17:50:57 | Re : Ma requête ne fonctionne qu'à moitié ! avez-vous une idée ?

thome76

juste une question il te retourne combien ExecuteNonQuery() ?


Quand tu fais une execution de requete essaie de faire un try catch ça peut aider dans ces cas là!
surtout que les requetes sql  avec les paramètre de connection sont des endroits sensibles dans les programmes....
Mais si quelqu'un d'autres a une idée

jeudi 5 février 2009 à 09:31:00 | Re : Ma requête ne fonctionne qu'à moitié ! avez-vous une idée ?

GarnierFlorian

Salut,
Et bien je suis de ton avis thome76, il serait intéressant d'utiliser un try catch, qui permet de gérer les exceptions et d'afficher un message désignant cette exception. Il est très important de prévoir la récupération des erreurs, cela permet d'éviter que l'application ne plante.

 Try
            'Ici tu tape tout ton code

  Catch ex As Exception
         MessageBox.Show(ex.Message) 'Retourne un message d'erreur si existant.
 End Try


Peace


Cette discussion est classée dans : données, erreur, fonctionne, idée, conn


Répondre à ce message

Sujets en rapport avec ce message

Erreur d'exécution '-214747848 (80010108)' [ par DenoHATE ] J'ai commencé un programme qui utilise les TextBox, ComboBox et CommandButton du controle FORM 2.0 et tout fonctionne sauf une page (qui n'a rien de d base de données [ par laure ] Bonjour,j'ai deux problemes :j'ai crée une base de données sous access2000. Je l'ai liée à une page html par les pages asp. donc j'ai crée une source erreur 429 [ par Rom ] Je dois installer un prog que j'ai fais en VB5 sur le poste d'une employée. Le programme fonctionne correctement sur tous les postes essayés, l'instal messages d'erreur 3704,3705,3706 [ par omega ] J'ai créé une application qui gère une base de données. j'ai utilisé l'utilitaire d'empactage de vb6 pour creer les fichiers d'installations mais lors erreur de connexion bd! URGENT!! [ par glopglop ] Salut!J'utilise une base de données Access qui contient des comptes urilisateur je dois par concequant entre un uid et un mdp pour me connecter à la b URGENT Erreur au démarrage !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ par Evangelion ] J'ai crée une appli de base de données avec un programme d'installation. Après bien des déboires (je passerais les plantages de l'assistant d'empaquet erreur entre listbox et base de données ??? [ par cyberlulu ] Salut !Sur ma form, j'ai un listbox et un data. A l'aide d'un textbox, je remplis le listbox et le texte que je rentre s'ajoute à une base de données OLE : Erreur pendant l'envoi des données [ par elchico ] Bonjour,Si je poste ce message aujourd'hui c'est en désespoire de cause. J'ai tout essayé : support microsoft, technet, aide, recherche sur le net etc assistant feuille de données et msg d'erreur [ par gplog ] Mr_toto Salut, J'y connait rien en base de donnée alors j'ai créer avec l'assitant une feuille de données. ça fonctionne tres bien, les donné Message d'erreur "Le fournisseur ou l'objet ne prend pas en charge cette méthode" [ par emerde ] Bonjour,Je veux tout simplement ajouter un nouvel enrégistrement à ma table DEPARTEMENT qui comporte les champs NoDept et NomDept avec l'objet Record


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,602 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales