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

ASP.NET Discussion :

[Spring] Requetes parametrées


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 42
    Par défaut [Spring] Requetes parametrées
    Bonjour,

    J'ai passé la matinée à débugué un bout de code incluant une requête paramêtrée, en fait je me retrouvais avec l'erreur :
    ORA-00932: types de données incohérents ; attendu : NUMBER ; obtenu : DATE
    Je créé ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String req = "INSERT INTO Projet(Id_Projet, DateDebut, DatFin) VALUES (:Id, :DateDebut, :DateFin)"
    Et j'utilise un IDBParametersBuilder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IDbParametersBuilder builder = CreateDbParametersBuilder();
     
    builder.Create().Name("DateDebut").Type(DbType.Date).Value(p.DateDebut);
    builder.Create().Name("DateFin").Type(DbType.Date).Value(p.DateFin);
    builder.Create().Name("Id").Type(DbType.Int64).Value(p.Id);
    Enfin, je lance ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AdoTemplate.ExecuteNonQuery(CommandType.Text, req, builder.GetParameters());
    J'ai trouvé pourquoi j'avais l'erreur :

    L'ordre dans lequel j'ai fait mes builder.Create() ne correspond pas avec l'ordre dans lequel figurent les valeurs paramétrées de la requête.

    Et là, j'en viens à ma question :

    A quoi ça sert de donner un nom aux paramètres, et pas un signe particulier genre : "insert into t(p1,p2) values(?,?)" ?

    Ensuite, seconde question, moins rhétorique:

    Existe-il un moyen de construire une requête paramètrée en ayant une liste associative -- une vraie, qui sert à quelquechose -- pour stocker les valeurs ?

    Car, si j'ai simplifié le code, en réalité, les builder.Create() sont appellés dans des méthodes et je ne peut pas contrôler l'ordre dans lequel ils sont fait.

    Merci d'avance pour vos lumières

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Le nom sert juste à ce que ce soit plus lisible... certains providers ADO.NET le prennent bien en compte (c'est le cas du provider SQL Server je crois), mais celui d'Oracle n'en tient pas compte il me semble

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 42
    Par défaut
    Merci pour cette précision : je débute en C# (et donc ADO.Net aussi) et il y a pas mal d'incohérence ou de limitations que je découvre au fur et à mesure de mes tribulations.

    Note : Je suis toujours preneur pour une réponse à ma deuxième question

    Edit :
    Il te semble bien, car c'est justement le Oracle Data Provider que j'utilise.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Batoche Voir le message
    Edit :
    Il te semble bien, car c'est justement le Oracle Data Provider que j'utilise.
    Je m'en doutais un peu vu le code d'erreur...

Discussions similaires

  1. Requete parametré a affiché
    Par kaiser59 dans le forum ASP
    Réponses: 7
    Dernier message: 01/02/2007, 14h12
  2. Requete parametrée par un formulaire
    Par kimar dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 12/07/2006, 16h42
  3. [hibernate][spring]requete select from where IN
    Par whilecoyote dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/04/2006, 09h06
  4. Requete parametrée avec CristalReport de VB6?
    Par bonsam dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/12/2005, 09h22
  5. Requete parametrée TADOQuery
    Par cdlr27 dans le forum Bases de données
    Réponses: 3
    Dernier message: 01/05/2004, 18h41

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