IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Connexion à Oracle


Sujet :

VB.NET

  1. #1
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut Connexion à Oracle
    Bonjour je suis en train d'essayer de faire une connexion VB/Oracle, j'ai suivi ce tuto http://xo.developpez.com/tutoriel/dotnet/oracle/odt/ j'ai donc fait un string de connexion ainsi qu'une connexion et un open de cette connexion, seulement je ne comprend pas pourquoi après ma ligne de connexion, plus rien n'est exécuté :

    Par exemple ici seul mon messagebox test1 est exécuté avant apparition de ma fenetre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Imports System.Data
    Imports Oracle.DataAccess.Client
     
    Public Class Accueil
     
        Private Sub OracleConnexion()
            Dim oradb As String = "Data Source=XE;User Id=usertest;Password=testuser;"
            MessageBox.Show("test1")
            Dim conn As New OracleConnection(oradb)
            MessageBox.Show("test2")
            conn.Open()
            MessageBox.Show("test3")
        End Sub
     
        Private Sub Accueil_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            OracleConnexion()
            MessageBox.Show("test4")
        End Sub
     
    End Class
    Rien de ce qui est après la ligne "Dim conn As New OracleConnection(oradb)" n'est exécuté ! J'avoue que je ne comprend pas ....
    Peut être que je m'y prend mal. Si quelqu'un pouvais m'éclairer ce serait sympa merci d'avance.

    edit: je viens de regarder la doc officielle d'oracle et j'ai l'impression d'avoir fait exactement la même chose
    http://www.oracle.com/technology/pub...cook-vs08.html


  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    pas de messagebox ? tu as mis un point d'arret et fait du pas à pas ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Oui bien sur quand j'ai vu que des messagebox n'étaient pas exécutés j'ai essayé de mettre un point d'arret. Et je me suis rendu compte que rien de ce qui est après la ligne "Dim conn As New OracleConnection(oradb)" n'est executé, une fois sur cette ligne quand je fait avancer le pas à pas de un, l'application se lance sans que le pas à pas avance sur les lignes suivantes ....

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    met le tout dans un try catch et met un messagebox ex.message dans le catch

    il me semble que vb fait qu'en cas de plantage dans le form_load, le code suivant l'erreur est ignoré et la fenetre s'affiche
    (les c#iens vont encore halluciner s'ils lisent ca)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Effectivement le reste était ignoré (j'ai appris un truc la, je pensais pas que c'était possible sans qu'on le spécifie nous même) ! J'ai donc suivi ton conseil et mis le tout dans un try catch avec un messagebox qui affiche l'exception, ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Imports System.Data
    Imports Oracle.DataAccess.Client
     
    Public Class Accueil
     
        Private Sub OracleConnexion()
            Try
                Dim oradb As String = "Data Source=XE;User Id=usertest;Password=testuser;"
                Dim conn As New OracleConnection(oradb)
                conn.Open()
            Catch ex As Exception
                MessageBox.Show(ex.Message.ToString())
            End Try
        End Sub
     
        Private Sub Accueil_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            OracleConnexion()
            MessageBox.Show("test")
        End Sub
     
    End Class
    Et grâce à ca mon messagebox test est cette fois bien exécuté et le catch affiche l'erreur qui se déclenche sur la ligne "Dim conn As New OracleConnection(oradb)" qui est :

    La référence d'objet n'est pas définie à une instance d'un objet
    Donc merci grâce à toi j'ai compris pourquoi certains messagebox n'étaient pas exécutés dans la version précédente. Par contre j'ai maintenant cette erreur sur ma connexion. Dans l'assistance de l'exception il me disent d'utiliser New pour instancier l'objet. Pourtant c'est bien ce que je fais ...

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Par défaut
    Pour créer ton objet de connexion, as-tu essayé ces lignes au lieu de le faire en une ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim conn As New OracleConnection()
    conn.ConnectionString = oradb
    Le message d'erreur que tu as correspond au fait qu'il n'arrive pas créer l'objet qui représente ta connexion Oracle.

  7. #7
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Oui j'ai essayé en deux lignes au lieu d'une, ça fait la même erreur.

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    y a que la sub form_load qui a ce comportement étrange
    m'enfin de toute facon il faut des try catch un peu partout même sans ca

    as tu une dll officielle pour ton OracleConnection ?
    parce que vu ce qui se passe je dirais que c'est dans la dll que ca plante et que donc tu ne pourrais pas y faire grand chose ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Par défaut
    Et il bloque sur la 1ère ou la 2ème ligne dans ce cas ?

  10. #10
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    as tu une dll officielle pour ton OracleConnection ?
    Eh bien j'ai simplement ajouté la référence "Oracle.DataAccess.dll" de mon Visual Studio Professional Edition 2008 exactement comme expliqué au début de ce tuto : http://xo.developpez.com/tutoriel/dotnet/oracle/odt/. Je précise que je suis sous windows 7.

    Et il bloque sur la 1ère ou la 2ème ligne dans ce cas ?
    Sur la première

  11. #11
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Salut,

    Par rapport à ton premier post, disposes tu d'un fichier tnsnames.ora ? en gros, as tu installé le client oracle sur ton poste ? La chaîne de connexion doit y faire référence normalement.

    Dans le doute, essaye de mettre la chaîne complète comme dans l'article cité.

  12. #12
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    essaye par là http://www.oracle.com/technology/tec...net/index.html plutot qu'un tuto de 2006
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Par rapport à ton premier post, disposes tu d'un fichier tnsnames.ora ? en gros, as tu installé le client oracle sur ton poste ? La chaîne de connexion doit y faire référence normalement. Dans le doute, essaye de mettre la chaîne complète comme dans l'article cité.
    Oui j'ai installé oracle (oracle express edition = XE) qui fonctionne bien puisque je peux m'y connecter avec PL/SQL, créer des tables et faire des insertions. Et oui j'ai essayé en mettant le string complet du tnssnames.ora et ca fait pareil.

  14. #14
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    essaye par là http://www.oracle.com/technology/tec...net/index.html plutot qu'un tuto de 2006
    Le tuto de 2006 dont j'ai mis le lien est correct puisque si on regarde la doc officielle de connexion oracle / VB2008 qui est ici http://www.oracle.com/technology/pub...cook-vs08.html on voit que c'est la même chose niveau connexion ...

  15. #15
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    si tu dis que le code est le même je veux bien croire, mais ca n'empeche pas que le tuto amène sur la version 10 du provider alors que le 11
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  16. #16
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Je vais regarder de ce coté la et télécharger la dernière version du Oracle Data Access Components (ODAC) pour voir si ca change quelque chose. Mais ça voudrait dire que celui présent par défaut dans Visual Studio 2008 ne fonctionne pas. Ce serait à cause du fait que je suis sous Windows 7 ? Peut être ...

    edit: je dit une betise, le dll n'est pas contenu dans Visual Studio en fait il vient de Oracle et est installé dans le dossier de celui ci.

  17. #17
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    J'ai téléchargé Oracle 11g ODAC 11.1.0.7.20 dans lequel j'ai trouvé le dll. J'ai remplacé l'ancien par le nouveau et ajouté la référence dans Visual Studio mais la rien du tout ca fait pareil.. Je vais peut être essayer d'installer la version 11g Standard Edition d'oracle à la place de ma version 10g Express Edition. Je ne vois plus quoi d'autres essayer.

  18. #18
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Bon j'ai installé Oralce 11g Standard Edition et maintenant j'obtiens l'erreur suivante sur la ligne "Dim conn As New OracleConnection(oradb)" :

    Une exception a été levé par l'initialiseur de type pour 'Orcale.DataAccess.Client.OracleConnection'
    Ca commence à me gonfler sévère .... je ne vois plus quoi essayer


  19. #19
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    c'est encore une erreur dans la dll, mais dans le shared sub new ce coup ci, donc pas du tout lié à ta ligne de code
    donc encore plus étrange ...

    tu es sur vs 2008 ?

    essaye de demander sur le forum c#, y a ptete plus de monde qui utilise oracle qu'ici ...

    ou passes sur sql server express
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  20. #20
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Par défaut
    Oui je suis sur vs 2008 professional. Et je ne peux pas changer de SGDB.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/12/2005, 04h28
  2. Connexion à Oracle Entreprise Manager
    Par black_code dans le forum Entreprise Manager
    Réponses: 4
    Dernier message: 11/11/2005, 14h29
  3. Connexion à Oracle depuis EXCEL
    Par Megaxel dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/10/2005, 12h04
  4. connexion oracle - choix d'architecture et langage
    Par ludvo dans le forum Général Conception Web
    Réponses: 8
    Dernier message: 13/09/2005, 21h33
  5. [Oracle] Pb connexion ORACLE (PHP5)
    Par Mikl dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/05/2005, 19h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo