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

Développement SQL Server Discussion :

[debutant] Procédure stockée


Sujet :

Développement SQL Server

  1. #1
    Membre régulier Avatar de libremax
    Profil pro
    Chargé de projets
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de projets

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Points : 91
    Points
    91
    Par défaut [debutant] Procédure stockée
    bonjour,
    j'ai un petit problème avec une procédure stocké.
    je désire recupérer des champs via une procédure mais il y a un champ qui contient des heures sous format datetime.
    lorsque j'appel sql avec :
    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
     
    ALTER PROCEDURE [dbo].[PS_ Stocks_Produit_Finit]
     
    AS
    BEGIN
    	SELECT     
    		NumeroAutomatique, 
    		Date, 
    		CodeArticle,
    		convert(varchar,HeureDeSaisie ,108) as heure, 
    		EntreEnStock, 
    		MouvementDeStock, 
    		SortieDeStock, 
    		Observation
    	FROM
            View_Stock_Produit_Finit
    	ORDER BY 
    		date, CodeArticle, HeureDeSaisie
    j'ai le bon résultat, mon champ heure est au format hh:mm:ss mais lorsque je
    le met a jour avec la command builder il entre dans sql un dbnull.
    Cela me parait normal vu la convertion mais alors comment faire l'inverse ?
    Quelqu'un pourrait il m'aider ?
    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    C'est quoi la command builder et dbnull ? De quoi tu parles?

    Tu veux récupérer une ou plusieurs valeur par une procedure?
    Tu veux faire quoi avec ces valeurs?

  3. #3
    Membre régulier Avatar de libremax
    Profil pro
    Chargé de projets
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de projets

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Points : 91
    Points
    91
    Par défaut re
    Bonjour cmako,
    Je m'explique un peu plus.
    Je crée dans sql server express une table, une view et un procédure stocké.
    ensuite en VB je récupére cette procédure que j'affecte a un datagrid.
    Puis je modifie le datagrid et lors de la fermeture de mon formulaire, je fait une mise a jours avec la fonction command builder.
    a ce moment la vb met à jours sql server.
    mais je m'appercoit que tous les champs sont mis a jours sauf celui qui est nommé heure il met dbnull
    et lorsque j'analyse la procédure stocké par laquel transit les infos,
    je vois bien que j'ai convertie mon champs heure(qui été en datetime) en varchar.
    Donc l'effet inverse ne marche pas.
    Comment faire pour la mise a jour de ma procédure?
    Merci d'avance

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Si vous souhaitez récupérer la donnée sans la formater, enlevez la fonction CONVERT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT     
    		NumeroAutomatique, 
    		Date, 
    		CodeArticle,
    		HeureDeSaisie AS heure, 
    		EntreEnStock, 
    		MouvementDeStock, 
    		SortieDeStock, 
    		Observation
    	FROM
            View_Stock_Produit_Finit
    	ORDER BY 
    		date, CodeArticle, HeureDeSaisie
    C'est tout de même bizarre que vous récupériez NULL pour cette colonne.
    J'imagine que la conversion automatique de la chaîne au type de données .NET ne se fait pas.
    En revanche la suppression de la fonction CONVERT vous donnera la date ...
    Il est possible d'extraire le nombre de minutes depuis minuit par exemple ...

    @++

  5. #5
    Membre régulier Avatar de libremax
    Profil pro
    Chargé de projets
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de projets

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Points : 91
    Points
    91
    Par défaut re
    bonjour elsuket,
    en fait mon problème est que se champ datetime est au format:
    jj/mm/aaaa hh:mm:ss
    mais pour des raisons de simplicité j'ai besoin de ce champ en format
    hh:mm voir hh:mm:ss
    c'est pour cela que je convertie ce champ mais chose bizare cela marche dans un sens mais pas dans l'autre.
    que faire ?
    salutations.

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Lorsque vous utilisez la fonction CONVERT, vous spécifiez quel type de données vous souhaitez obtenir et le style.
    Dans votre cas, vous aviez spécifié VARCHAR, donc vous récupérerez une chaîne de caractères

    Si c'est ce que vous souhaitez afficher dans une application alors extrayez la donnée au type DATETIME, puis faites la cosmétique dans l'application.
    Un SGBD n'est pas conçu pour faire de la cosmétique mais pour stocker, modifier et restituer des données

    @++

  7. #7
    Membre régulier Avatar de libremax
    Profil pro
    Chargé de projets
    Inscrit en
    Mars 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de projets

    Informations forums :
    Inscription : Mars 2007
    Messages : 168
    Points : 91
    Points
    91
    Par défaut re
    Bonjour,
    Je vais donc faire avec

    Salutation.

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

Discussions similaires

  1. [DEBUTANT]Procédure stocké non bloquante
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/06/2007, 13h45
  2. [DEBUTANT]Procédure stockée Traitement sur une boucle de requete
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/06/2007, 17h24
  3. [DEBUTANT]Procédure stockée avec plusieurs requetes
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/06/2007, 18h49
  4. [DEBUTANT] procédure stockées dans select
    Par wrapx dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/06/2006, 20h08
  5. [debutant] Procédure stockée
    Par Vincent BONNAL dans le forum SQL
    Réponses: 14
    Dernier message: 15/03/2004, 13h11

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