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 :

Erreur : ORA - 01745


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut Erreur : ORA - 01745
    Bonjour, j'ai une petit problème (vous vous en doutez ;D) lors de l'execution de ma commande. J'ai l'erreur "ORA-01745 : nom de variable hôte/attachée (bind) non valide"

    Voici mon code :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Private Sub cmdValider_Click(sender As System.Object, e As System.EventArgs) Handles cmdValider.Click
            Dim strConnex As String
            Dim Rqt As String
            strConnex = GetConnexionString()
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
     
                Rqt = "INSERT INTO EVENEMENT (LIBELLE, DTE_EVENT, ID_EVENT, ID_DECISION, ID_TYPE_EVENT) VALUES (:LibEvent, TO_DATE(:Date), :NbEvent, :NbDeci, 1)"
     
                ' On crée une commande Oracle    
                Using cmd = New OracleCommand()
                    cmd.Connection = Me.objConnexion
                    cmd.CommandText = Rqt
                    cmd.CommandType = CommandType.Text
     
                    ' On définit les valeurs des paramètres de la requête
                    cmd.Parameters.Add(":LibEvent", OracleDbType.Varchar2).Value = txtNatureEvenement.Text()
                    cmd.Parameters.Add(":Date", OracleDbType.Date).Value = DateTimePicker1.Value
                    cmd.Parameters.Add(":NbEvent", OracleDbType.Int32).Value = NbEvent
                    cmd.Parameters.Add(":NbDeci", OracleDbType.Int32).Value = NbDeci
     
                    ' On exécute la requête    
                    Using dr As New OracleDataAdapter
                        cmd.ExecuteNonQuery()
     
                        MessageBox.Show("L'évènement à été ajouté avec succès!")
                        Connection.Show()
                        Me.Hide()
                    End Using
                End Using
     
            Catch ex As Exception
                ' --Message d'erreur en cas de problême de connexion à la BDD--
                MessageBox.Show("ERREUR : " & ex.ToString)
            End Try
        End Sub
    Je pense (selon moi) que l'erreur viens de mon DateTimePicker. En effet, lorsque je met un point d'arret juste avant l'execution de ma commande, je remarque que le value du DateTimePicker ne prend pas la valeur 05/05/2013 09:58:00 (par exemple) mais #5/9/2013 09:58:00 AM# a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.Parameters.Add(":Date", OracleDbType.Date).Value = DateTimePicker1.Value
    je pense que ça peut venir de là.

    Aidez moi svp

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    D'après ce lien, le message d'erreur est causé parce que le nom d'une variable est potentiellement un mot clef réservé. La solution préconisée est de changer le nom de la variable. Donc effectivement il est possible que Date soit un mot clef réservé et que tu doives utiliser autre chose (ex. DateValue).
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Google, ~4 secondes de recherche.

    ORA-01745: invalid host/bind variable name
    Cause: A colon in a bind variable or INTO specification was followed by an inappropriate name, perhaps a reserved word.
    Action: Change the variable name and retry the operation.

    Essaye de remplacer :date par un autre nom ?

    EDIT: Arf, grillé.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Si je change mon ate par autre chose j'ai une autre erreur de violation de contrainte d'intégrité :s pourtant la requete fonctionne sous sqldeveloper en remplaçant par des valeurs.

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Si tu as une erreur différente du message ORA-01745, ça veut dire que le fait de remplacer le nom de la variable était la bonne solution.

    S'il y a un problème d'intégrité, c'est parce que l'une des clefs étrangères de l'enregistrement que tu insères n'est pas valide (ie. la valeur n'existe pas dans la table référencée).

    Donc vérifie bien que tes paramètres :NbEvent, :NbDeci, et la valeur 1 sont corrects.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Je rectifie, ma requete MARCHAIT...
    En effet quand je tente cette requete:

    INSERT INTO EVENEMENT (LIBELLE, DTE_EVENT, ID_EVENT, ID_DECISION, ID_TYPE_EVENT)
    VALUES ('TEST', TO_DATE(05/06/2013 10:54:00), 5, 5, 1)

    J'ai un jolie "La variable attachée (bind variable) "54" est NON DECLAREE
    0 lignes inséré."

    alors que pourtant mon DTE_EVENT est bien en DD/MM/YYYY HH24:MI:SS

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Difficile de te suivre... Essaie avec des simple quotes : TO_DATE('05/06/2013 10:54:00')
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    et to_date('05/06/2013 10:54:00', 'yyyy/mm/dd hh24:mi:ss') ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    ça ne résout pas le problème hélas

  10. #10
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Peut-on voir ta dernière version de code ? Dans la mesure où il a évolué depuis ton 1er post ....

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Private Sub cmdValider_Click(sender As System.Object, e As System.EventArgs) Handles cmdValider.Click
            Dim strConnex As String
            Dim Rqt As String
            strConnex = GetConnexionString()
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
     
                Rqt = "INSERT INTO EVENEMENT (LIBELLE, DTE_EVENT, ID_EVENT, ID_DECISION, ID_TYPE_EVENT) VALUES (:LibEvent, TO_DATE(:DateValue), :NbEvent, :NbDeci, 1)"
     
                ' On crée une commande Oracle    
                Using cmd = New OracleCommand()
                    cmd.Connection = Me.objConnexion
                    cmd.CommandText = Rqt
                    cmd.CommandType = CommandType.Text
     
                    ' On définit les valeurs des paramètres de la requête
                    cmd.Parameters.Add(":LibEvent", OracleDbType.Varchar2).Value = txtNatureEvenement.Text()
                    cmd.Parameters.Add(":DateValue", OracleDbType.Date).Value = DateTimePicker1.Value
                    cmd.Parameters.Add(":NbEvent", OracleDbType.Int32).Value = NbEvent
                    cmd.Parameters.Add(":NbDeci", OracleDbType.Int32).Value = NbDeci
     
                    ' On exécute la requête    
                    Using dr As New OracleDataAdapter
                        cmd.ExecuteNonQuery()
     
                        MessageBox.Show("L'évènement à été ajouté avec succès!")
                        Connection.Show()
                        Me.Hide()
                    End Using
                End Using
     
            Catch ex As Exception
                ' --Message d'erreur en cas de problême de connexion à la BDD--
                MessageBox.Show("ERREUR : " & ex.ToString)
            End Try
        End Sub
    Et voila la requete que je test sur sqldev (qui ne fonctionne pas non plus):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO EVENEMENT (LIBELLE, DTE_EVENT, ID_EVENT, ID_DECISION, ID_TYPE_EVENT) 
    VALUES ('TEST', TO_DATE('05/06/2013 10:54:00' 'DD/MM/YYYY HH24:MI:SS'), 5, 5, 1)

  12. #12
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Attention dans le TO_DATE que _Ez3kiel a indiqué, tu sembles avoir omis la virgule entre les deux valeurs : TO_DATE('05/06/2013 10:54:00', 'DD/MM/YYYY HH24:MI:SS')
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Si je met la virgule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Erreur commençant à la ligne 1 de la commande :
    INSERT INTO EVENEMENT (LIBELLE, DTE_EVENT, ID_EVENT, ID_DECISION, ID_TYPE_EVENT) 
    VALUES ('TEST', TO_DATE('05/06/2013 10:54:00', 'DD/MM/YYYY HH24:MI:SS'), 5, 5, 1)
    Rapport d'erreur :
    Erreur SQL : ORA-02291: violation de contrainte d'intégrité (CEDRICV.ID_DECISION) - clé parent introuvable
    02291. 00000 - "integrity constraint (%s.%s) violated - parent key not found"
    *Cause:    A foreign key value has no matching primary key value.
    *Action:   Delete the foreign key or add a matching primary key.

  14. #14
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Ben c'est ce que je t'ai dit tout à l'heure Ta clef étrangère n'est pas bonne sur la colonne ID_DECISION de ta requête. Tu as deux options :
    - Soit tu crées la valeur "5" dans la table CEDRICV.ID_DECISION.
    - Soit tu utilises une autre valeur dans ta requête.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Bon du coup (dsl du retard) je suis parti pour d'abord faire ma requete de création de décision, la voici :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Private Sub cmdValider_Click(sender As System.Object, e As System.EventArgs) Handles cmdValider.Click
            Dim strConnex As String
            Dim Rqt As String
            strConnex = GetConnexionString()
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
     
                Rqt = "INSERT INTO DECISION (ID_DECISION, LIBELLE, DTE, ID_TYPE_EVENT) VALUES (:NbDeci, :LibDeci, TO_DATE(:DteValue), 1)"
     
                ' On crée une commande Oracle    
                Using cmd = New OracleCommand()
                    cmd.Connection = Me.objConnexion
                    cmd.CommandText = Rqt
                    cmd.CommandType = CommandType.Text
     
                    ' On définit les valeurs des paramètres de la requête
                    cmd.Parameters.Add(":NbDeci", OracleDbType.Int32).Value = NbDeci
                    cmd.Parameters.Add(":LibDeci", OracleDbType.Varchar2).Value = txtDecision.Text()
                    cmd.Parameters.Add(":DteValue", OracleDbType.Date).Value = DateTimePicker1.Value
                    cmd.Parameters.Add(":NbEvent", OracleDbType.Int32).Value = NbEvent
     
                    ' On exécute la requête    
                    Using dr As New OracleDataAdapter
                        cmd.ExecuteNonQuery()
     
                        MessageBox.Show("La décision à été ajouté avec succès!")
                        Connection.Show()
                        Me.Hide()
                    End Using
                End Using
     
            Catch ex As Exception
                ' --Message d'erreur en cas de problême de connexion à la BDD--
                MessageBox.Show("ERREUR : " & ex.ToString)
            End Try
        End Sub
    Seulement il me retourne ORA-01036 : numéro/nom de variable interdit,vu que je ne m'y connais pas encore assez, aurais-je utilisé un nom de variable réservé?

  16. #16
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Si tu n'as plus l'utilité de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd.Parameters.Add(":NbEvent", OracleDbType.Int32).Value = NbEvent
    alors tu dois supprimer.

    ORA-01036:
    illegal variable name/number
    Cause: Unable to find bind context on user side
    Action: Make sure that the variable being bound is in the sql statement.

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Autant pour moi, la bdd n'était pas à jour, ça fonctionne, maintenant je tente l'insertion d'évènement, je vous tiens au courant

  18. #18
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Tu m'as fait peur j'étais encore en train de chercher suite à ton post pré-edit.

  19. #19
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Bon, j'avance petit à petit, voici mon code actuel : (C'est long!)

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    Private Sub cmdValider_Click(sender As System.Object, e As System.EventArgs) Handles cmdValider.Click
            Dim strConnex As String
            Dim Rqt, Rqt2, Rqt3 As String
            strConnex = GetConnexionString()
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
     
                Rqt = "INSERT INTO DECISION (ID_DECISION, LIBELLE, DTE, ID_TYPE_EVENT) VALUES (:NbDeci, :LibDeci, TO_DATE(:DteValue), 1)"
                Rqt2 = "INSERT INTO OPERATEUR (ID_OPERATEUR, LIBELLE) VALUES (:NbOpe, :LibOpe)"
                Rqt3 = "INSERT INTO EVENEMENT (LIBELLE, DTE_EVENT, ID_OPERATEUR, ID_EVENT, ID_DECISION, ID_TYPE_EVENT) VALUES (:LibEvent, TO_DATE(:DteValue), :NbOpe, :NbEvent, :NbDeci, 1)"
     
                ' On crée une commande Oracle    
                Using cmd = New OracleCommand()
                    cmd.Connection = Me.objConnexion
                    cmd.CommandText = Rqt
                    cmd.CommandType = CommandType.Text
     
                    ' On définit les valeurs des paramètres de la requête
                    cmd.Parameters.Add(":NbDeci", OracleDbType.Int32).Value = NbDeci
                    cmd.Parameters.Add(":LibDeci", OracleDbType.Varchar2).Value = txtDecision.Text()
                    cmd.Parameters.Add(":DteValue", OracleDbType.Date).Value = DateTimePicker1.Value
     
                    ' On exécute la requête    
                    Using dr As New OracleDataAdapter
                        cmd.ExecuteNonQuery()
     
                        ' On crée une commande Oracle    
                        Using cmd2 = New OracleCommand()
                            cmd2.Connection = Me.objConnexion
                            cmd2.CommandText = Rqt2
                            cmd2.CommandType = CommandType.Text
     
                            ' On définit les valeurs des paramètres de la requête
                            cmd2.Parameters.Add(":NbOpe", OracleDbType.Int32).Value = NbOpe
                            cmd2.Parameters.Add(":LibOpe", OracleDbType.Varchar2).Value = txtOp.Text()
     
                            ' On exécute la requête    
                            Using dr2 As New OracleDataAdapter
                                cmd2.ExecuteNonQuery()
     
                                'On crée une commande Oracle    
                                Using cmd3 = New OracleCommand()
                                    cmd3.Connection = Me.objConnexion
                                    cmd3.CommandText = Rqt3
                                    cmd3.CommandType = CommandType.Text
     
                                    ' On définit les valeurs des paramètres de la requête
                                    cmd3.Parameters.Add(":LibEvent", OracleDbType.Varchar2).Value = txtNatureEvenement.Text()
                                    cmd3.Parameters.Add(":DteValue", OracleDbType.Date).Value = DateTimePicker1.Value
                                    cmd2.Parameters.Add(":NbOpe", OracleDbType.Int32).Value = NbOpe
                                    cmd3.Parameters.Add(":NbEvent", OracleDbType.Int32).Value = NbEvent
                                    cmd3.Parameters.Add(":NbDeci", OracleDbType.Int32).Value = NbDeci
     
                                    ' On exécute la requête    
                                    Using dr3 As New OracleDataAdapter
                                        cmd3.ExecuteNonQuery()
     
                                        MessageBox.Show("Les informations ont été ajoutées avec succès!")
                                        ChoixFormulaire.Show()
                                        Me.Hide()
                                        Me.objConnexion.Close()
                                    End Using
                                End Using
                            End Using
                        End Using
                    End Using
                End Using
     
            Catch ex As Exception
                ' --Message d'erreur en cas de problême de connexion à la BDD--
                MessageBox.Show("ERREUR : " & ex.ToString)
            End Try
        End Sub
    Le problème est que j'ai un message d'erreur me disant que toutes les variables ne sont pas liées. L'erreur se produit à la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cmd3.ExecuteNonQuery()
    Lorsque je regarde dans me BDD, je vois que les Rqt 1 et 2 ont bien été exécutée mais pas la 3 :s

  20. #20
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Quel est l'intérêt de faire un TO_DATE, alors que le paramètre est déjà de type date ?

    Autre point, n'hésite pas à utiliser une transaction pour t'assurer que les 3 requêtes sont passées, et pouvoir agir correctement à la fin (commit ou rollback).

    Pour finir, ligne 53 du dernier bloc de code que tu as posté, tu ajoutes le paramètre NbOpe à la cmd2 au lieu de la cmd3.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. Erreur ORA-12514 avec database link
    Par gafreu dans le forum Administration
    Réponses: 20
    Dernier message: 09/09/2004, 11h53
  2. Erreur ORA-01036 sur un XMLGRAM
    Par sch dans le forum XMLRAD
    Réponses: 5
    Dernier message: 07/09/2004, 14h56
  3. code retour UNIX sur erreur ORA
    Par vinz_07 dans le forum Administration
    Réponses: 7
    Dernier message: 25/08/2004, 11h04
  4. erreur ora-12801 : error signaled in parallel query server
    Par dngaya dans le forum Administration
    Réponses: 5
    Dernier message: 15/04/2004, 16h25
  5. erreur "ORA-22905" lors de l'execution d'un requet
    Par benji999 dans le forum Administration
    Réponses: 26
    Dernier message: 14/04/2004, 11h47

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