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

ADO.NET Discussion :

ODP.NET Update génère une erreur ORA [Débutant]


Sujet :

ADO.NET

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 110
    Points
    110
    Par défaut ODP.NET Update génère une erreur ORA
    Bonjour les Developpeziens,

    Je rencontre un soucis lorsque je souhaite updater un record en le conditionnant sur une date( qui est un paramètre).

    voici le bout de 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
    Dim conAsoc2Dmi As OracleConnection = ConnectionDB.GetConnexionAss2Dmi()
                Dim cmd As OracleCommand = conAsoc2Dmi.CreateCommand()
                cmd.CommandText = "MY_PROC"
                cmd.CommandType = CommandType.StoredProcedure
     
                cmd.Parameters.Add(":PNADM", record.NADM).OracleDbType = OracleDbType.Decimal
                conAsoc2Dmi.Open()
                cmd.ExecuteNonQuery()
     
                'Le code ci-dessus fonctionne mais pas en dessous
                cmd.CommandText = "Update MY_TBL set MAJ='O' where moddate = :mod"
                cmd.CommandType = CommandType.Text
                Dim p As OracleParameter = cmd.Parameters.Add(":mod", OracleDbType.Date, DateTime.Now, ParameterDirection.Input) 
     
                cmd.ExecuteNonQuery()
    Lorsque l'update est exécuté, j'ai soit une erreur ORA-01036: illegal variable name/number.

    - Est ce que quelqu'un sait comment mettre un paramètre de type date et y-a-t-il moyen de savoir qu'elle requête sql est vraiment exécuté?

    Merci

  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 : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Sur la ligne 13 du code que tu as posté, enlève les deux points (":") avant le nom de ton paramètre :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim p As OracleParameter = cmd.Parameters.Add("mod", OracleDbType.Date, DateTime.Now, ParameterDirection.Input)
    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 régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 110
    Points
    110
    Par défaut
    le remplacement de ":mod" en "mod" dans le parametre génère la même erreur.

    Par contre quand le je modifie la requete par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cmd.CommandText = "Update MY_TBL set MAJ='O' where moddate = ?"
                cmd.CommandType = CommandType.Text
                Dim p As OracleParameter = cmd.Parameters.Add("mod", OracleDbType.Date, DateTime.Now, ParameterDirection.Input)
    il me génère l'erreur ORA-00911: invalid character.

  4. #4
    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 : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Non la première façon de faire était la bonne C'est peut-être parce que tu ajoutes un paramètre à la ligne 6 du premier bloc de code que tu as posté.

    Vide la liste de paramètres après la ligne 8 où tu fais le ExecuteNonQuery.

    Il me semble que l'ordre dans lequel tu ajoutes les paramètres doit être exactement le même que l'ordre dans lequel ils apparaissent dans la 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.

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 110
    Points
    110
    Par défaut
    Je viens de tester en vidant la liste des paramètres. Ça fonctionne! Super
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/12/2006, 09h09
  2. [ADO.NET] Update avec une form et des combobox
    Par Herlece dans le forum Accès aux données
    Réponses: 4
    Dernier message: 12/12/2006, 02h12
  3. [VB.NET] ADO.NET: update d'une dataset dans une base
    Par Alexj51 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/05/2006, 15h48
  4. [Oracle 10g] Comment résoudre une erreur ORA-3000
    Par DoRiane dans le forum Oracle
    Réponses: 3
    Dernier message: 10/04/2006, 09h44
  5. [VB6] Problème de textbox multiligne qui génére une erreur
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/02/2006, 16h21

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