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

NHibernate Discussion :

Execution de procedure stockée Nhibernate


Sujet :

NHibernate

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur études et développement .NET
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur études et développement .NET

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 24
    Points
    24
    Par défaut Execution de procedure stockée Nhibernate
    Salut tout le monde,

    je veux afficher des lignes provenat de la base de donnee dans le rapport RDLC.

    en j'au cree une procedure stockéé dans sql server la voila:

    USE [DB]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[tableau_recapitulatif]

    @DOSSIER_IDENTIFIANT BIGINT
    @CABINET_IDENTIFIANT INT
    AS

    select

    convert(varchar(50),ds.IDENTIFIANT) AS IDENTIFIANT,
    ds.NUMERO_POLICE AS NUMERO_POLICE,
    ds.NOM_ASSURE AS ASSURE,

    from SINISTRE_DOSSIER ds
    where
    (ds.IDENTIFIANT=@DOSSIER_IDENTIFIANT OR @DOSSIER_IDENTIFIANT IS NULL)
    AND
    (ds.CABINET_IDENTIFIANT=@CABINET_IDENTIFIANT OR @CABINET_IDENTIFIANT IS NULL)


    au niveau de hibernate :

    <sql-query name="tableauRecapitulatif">

    exec sinistre_auto_tableau_recapitulatif
    OSSIER_IDENTIFIANT,
    :CABINET_IDENTIFIANT
    <return class="TableauRecapitulatif"/>
    </sql-query>



    pour le code C#:
    public IList<TableauRecapitulatif> selectTableauRecapitulatif(string identifiant, string cabinetIdentifiant)
    {
    ISessionFactory sf = HibernateTemplate.SessionFactory;
    ISession s = sf.OpenSession();
    IQuery q = (IQuery)s.GetNamedQuery("tableauRecapitulatif");
    q.SetTimeout(3000); //nbre en seconds
    q.SetParameter("DOSSIER_IDENTIFIANT", (identifiant != "") ? identifiant : null);

    q.SetParameter("CABINET_IDENTIFIANT", (cabinetIdentifiant != "") ? cabinetIdentifiant : null);

    return q.List<TableauRecapitulatif>();

    voila l'erreur que je reçois:

    could not execute query [ exec sinistre_auto_tableau_recapitulatif DOSSIER_IDENTIFIANT@p0, @p1] NameOSSIER_IDENTIFIANT - Value:120220130009 Name:CABINET_IDENTIFIANT - Value:null
    [SQL: exec sinistre_auto_tableau_recapitulatif DOSSIER_IDENTIFIANT@p0, @p1]


    Je vous remercie d'avance.

  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
    Deux options, soit tu autorises le passage de paramètres ayant pour valeur NULL, soit tu revois ton code pour faire en sorte de ne pas avoir de paramètres NULL...

    Pour la première, il suffit de mettre ceci :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER PROCEDURE [dbo].[tableau_recapitulatif]
        @DOSSIER_IDENTIFIANT BIGINT = NULL
        @CABINET_IDENTIFIANT INT = NULL
    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 à l'essai
    Femme Profil pro
    Ingénieur études et développement .NET
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur études et développement .NET

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    merci bien Mathieu d'avoir répondu a ma question.
    en fait j'autorise le passage de paramètres ayant pour valeur NULL,
    j'ai fait ce que m'a donné pourtant je reçois tjrs la meme erreur.

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 50
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Je crois que le problème vient plus de l'appel à la procédure stockée... si p0 et p1 sont bien des valeurs de tes variables l'appel doit être de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     exec sinistre_auto_tableau_recapitulatif DOSSIER_IDENTIFIANT p0, p1
    Non ?

  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 : 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
    Oui effectivement, mais il me semble que NHibernate se charge de créer cette instruction dynamiquement. Après, ça fait un certain temps que je n'ai pas touché à cet outil donc il y a peut-être de nouvelles subtilités que j'ignore
    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 à l'essai
    Femme Profil pro
    Ingénieur études et développement .NET
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur études et développement .NET

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    merci les amis de vos efforts pour m'aider, finalement j'ai pu resoudre ce probleme , en effet dans la procédure y'a d'autres parametre : deux dates, au debui elles étaient declaree DATETIME , et c rien qu'avec un changement de type : de DATETIME a DATE tout marche hyper bien.
    merci encore une fois.

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

Discussions similaires

  1. comment Executer une procedure stocké paramétré
    Par Khalid.bounouader dans le forum Accès aux données
    Réponses: 1
    Dernier message: 30/10/2006, 17h36
  2. executer une procedure stockées dans une requete SELECT
    Par bleuerouge dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/08/2006, 17h23
  3. executer une procedure stockée ?
    Par Maddelphi dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/11/2005, 10h05
  4. executer une procedure stockée d'une BD depuis une autre BD
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/08/2005, 16h02
  5. [Debutant][SQL] Execution de procedures stockées
    Par Yannos94 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 18h09

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