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

MS SQL Server Discussion :

procédure stockée capricieuse


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut procédure stockée capricieuse
    bonjour et bonne année,
    Voila, je n'arrive pas à faire cette petite procédure nommée avec une paramètre. Si j'ecrivais sans la paramètre @resource , cela donnerait bien des resultats ,alors que si je la mets, ca retourne vide. Pourquoi merci?
    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
     
    ALTER procedure sp_psactualsbyday 
    	-- date range variables
    	@startdate datetime,
    	@enddate datetime,
    	@resource nchar
    as
     
    select	substring(r.res_name,0,15) as Resource,
    	substring(p.proj_name,0,15) as Project,
    	td.AssignmentTimeStart,
    	td.AssignmentTimeFinish,
    	(td.AssignmentTimeActualWork / 1000) / 60 as Hours
    from	msp_projects p,
    	msp_assignments a,
    	msp_resources r,
    	msp_view_proj_assn_tp_by_day td
    where	p.proj_id = a.proj_id
    and	a.res_uid = r.res_id
    and	a.assn_uid = td.AssignmentUniqueID
    --and	AssignmentTimeActualWork is not null
    and	res_name=@resource
    and	AssignmentTimeStart > @startdate
    and	AssignmentTimeFinish < @enddate

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    res_name est-il un nchar ou non ?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    un type SQL de type chaine de caractère doit être formaté en longueur.
    Ce n'est donc pas :
    qu'il faut mettre, mais :
    par exemple.

    Le mieux étant de reprendre exactement le même type (et la même longueur) que celui de la colonne res_name de la table correspondante.
    Si vous ne connaissez pas la taille exacte, alors allez dans les vues d'information de schéma la trouver.
    En particulier dans INFORMATION_SCHEMA.COLUMNS.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut
    merci pour la réponse mais non... ca marche toujours pas.
    J'ai évolué mon code comme ca.
    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
    ALTER procedure sp_psactualsbyday 
    	-- date range variables
    	@startdate datetime,
    	@enddate datetime,
    	@resource varchar(255)
    as
     
    select substring(r.res_name,0,15) as Resource,
    	substring(p.proj_name,0,15) as Project,
    	td.AssignmentTimeStart,
    	td.AssignmentTimeFinish,
    	(td.AssignmentTimeActualWork / 1000) / 60 as Hours
    from	msp_projects p,
    	msp_assignments a,
    	msp_resources r,
    	msp_view_proj_assn_tp_by_day td
    where	p.proj_id = a.proj_id
    and	a.res_uid = r.res_id
    and	a.assn_uid = td.AssignmentUniqueID
    and	AssignmentTimeActualWork is not null
    and   r.res_name=@resource
    and	AssignmentTimeStart > @startdate
    and	AssignmentTimeFinish < @enddate

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Pouvez vous postez le scripte de création des tables que vous utilisez ?
    Un petit jeu d'essai ferait également affaire.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut
    Bonjour,
    ca y est , j'ai résolu une part du problème,
    voila comment mon code a évolué:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    and   r.res_name=substring(@resource,0,15)
    Maintenant ce qu'il fait, c'est qu'il y a des valeurs de la paramètre que ca marche et d'autres pas. pour wolo laurent, au fait, je n'ai pas de script de création de la table parce que c'est celui de microsoft project server, et en plus je travaille sur visual studio .net ....

  7. #7
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    C'est inélégant au possible et ça pourrit les perfs, mais essayez juste pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    and   left(r.res_name,15)=left(@resource,15)
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  8. #8
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut
    non toujours pas. :o

  9. #9
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2005
    Messages : 105
    Par défaut
    Bon, ca y est. Ca marche jusqu'à nouvelle surprise !!!
    Voila le code final:
    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
    select  substring(r.res_name,0,50) as Resource,
    	p.proj_id as Project,
    	t.task_name as Task,
    	td.AssignmentTimeStart,
    	td.AssignmentTimeFinish,
    	(td.AssignmentTimeActualWork / 1000) / 60 as ActualWork,
    	(a.assn_reg_work / 1000)/60 as RegularWork,
    	(a.assn_rem_work / 1000)/60 as RemainingWork
    from	msp_projects p,
    	msp_assignments a,
    	msp_resources r,
    	msp_tasks t,
    	msp_view_proj_assn_tp_by_day td
    where	p.proj_id = a.proj_id
    and	a.task_uid = t.task_uid
    and	a.res_uid = r.res_uid
    and	a.assn_uid = td.AssignmentUniqueID
    and	AssignmentTimeActualWork is not null
    and   left (r.res_name,50)= left(@resource,50)
    --and r.res_name=substring (@resource,0,20)
    and	AssignmentTimeStart > @startdate
    and	AssignmentTimeFinish < @enddate
    En plus de ce que fadace m'a proposé toute dernièrement, j'ai du changer 20 en 50 et 256 a 4000... tout ca un peu plus grand mais au pif... mais tant que ca marche.... Merci beaucoup à toous.......

  10. #10
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Merci de penser au tag [Résolu]

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

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

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Procédure stocké:Insert et renvoie de la clé primair
    Par caramel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2003, 09h34
  3. [Pervasive SQL ] procédure stockée
    Par magellan dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 25/10/2002, 13h17
  4. Explication procédure stockée
    Par underworld dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2002, 10h51
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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