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 :

Problème de mise a jour d'un formulaire.. de l'aide svp


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 57
    Par défaut Problème de mise a jour d'un formulaire.. de l'aide svp
    Bonjour a tous !

    Je suis en train de faire un formulaire (Form1) pour le suivi des dépannages et la Form2 et pour la DGV

    j'ai un problème avec la mise a jour de ce DGV
    enfaite j'ai créer une procédure stockée pour celle ci.

    Au moment d'inséré aucun problèmes les dépannages s'insert ligne par ligne normalement mais au moment de la mise a jour toute mes interventions devienne identiques a celle que j'ai modifier... c'est bête, très...

    Alors si qqun pouvais m'aider !? Merci !!

    Voila la procédure UPDATE si vous avez besoin d'autre chose faite le moi savoir !

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    ALTER PROCEDURE [dbo].[UPDATEStatusInterventions]
     
    @StatusIntervention char (50),
    @NomSite char (50),
    @NomSecteur char (50),
    @NomDemandeur char (100),
    @NoTéléphoneDemandeur char (25),
    @DateDemande datetime,
    @NomIntervenant char (100),
    @NoTéléphoneIntervenant char (25),
    @NoCFC char (50),
    @DesignationInstallation char (50),
    @DesignationMachine char (50),
    @DescriptionPanne char(250),
    @CausePanne char (50),
    @TacheEffectuee char (250),
    @DateIntervention datetime,
    @TempsIntervention numeric(18,0),
    @NBpceUtilise numeric(18,0),
    @NoArtPceUtilise char (50), 
    @NoRefPceUtilise char(50),
    @PrixPce Money,
    @Commentaire char(250),
    @DateFinIntervention datetime,
    @Garentie datetime
    AS
    	UPDATE       StatusInterventions
    	SET                StatusIntervention = @StatusIntervention, NomSite = @NomSite, NomSecteur = @NomSecteur, NomDemandeur = @NomDemandeur, 
    	                         NoTéléphoneDemandeur = @NoTéléphoneDemandeur, DateDemande = @DateDemande, NomIntervenant = @NomIntervenant, 
    	                         NoTéléphoneIntervenant = @NoTéléphoneIntervenant, NoCFC = @NoCFC, DesignationInstallation = @DesignationInstallation, 
    	                         DesignationMachine = @DesignationMachine, DescriptionPanne = @DescriptionPanne, CausePanne = @CausePanne, TacheEffectuee = @TacheEffectuee, 
    	                         DateIntervention = @DateIntervention, TempsIntervention = @TempsIntervention, NBpceUtilise = @NBpceUtilise, NoArtPceUtilise = @NoArtPceUtilise, 
    	                         NoRefPceUtilise = @NoRefPceUtilise, PrixPce = @PrixPce, Commentaire = @Commentaire, DateFinIntervention = @DateFinIntervention, Garentie = @Garentie

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 57
    Par défaut
    Euh si jamais c'est pas NoTéléphoneDemandeur et NoTéléphoneIntervenant

    je sais pas pourquoi sa ma affiche sa comme ça au noveau des paramètre..

  3. #3
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Forcément, vous ne mettez aucune condition sur l'update.
    Il faudrait donc mettre une clause WHERE qui identifie bien la ligne à updater.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 57
    Par défaut
    Dsl j suis Frigoriste ^^ mon domaine c'est la technique du froid !..
    tu pourrai juste me montrer un exemple avec ta clause Where sur un de mes paramètre que je comprenne un peux mieux ce que je dois faire.. stp

  5. #5
    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 : 44
    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
    Par défaut
    Bonjour,

    Toute intervention doit avoir un identifiant unique.
    Donc il suffit de filtrer l'UPDATE par cet identifiant pour ne mettre à jour que l'intervention concernée :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    ALTER PROCEDURE [dbo].[UPDATEStatusInterventions]
    	@InterventionId int,
    	@StatusIntervention char(50),
    	@NomSite char(50),
    	@NomSecteur char(50),
    	@NomDemandeur char(100),
    	@NOTéléphoneDemandeur char(25),
    	@DateDemande datetime,
    	@NomIntervenant char(100),
    	@NOTéléphoneIntervenant char(25),
    	@NoCFC char(50),
    	@DesignationInstallation char(50),
    	@DesignationMachine char(50),
    	@DescriptionPanne char(250),
    	@CausePanne char(50),
    	@TacheEffectuee char(250),
    	@DateIntervention datetime,
    	@TempsIntervention numeric(18,0),
    	@NBpceUtilise numeric(18,0),
    	@NoArtPceUtilise char(50), 
    	@NoRefPceUtilise char(50),
    	@PrixPce Money,
    	@Commentaire char(250),
    	@DateFinIntervention datetime,
    	@Garentie datetime
    AS
    BEGIN
    	SET NOCOUNT ON
     
    	UPDATE	dbo.StatusInterventions
    	SET	StatusIntervention = @StatusIntervention
    		, NomSite = @NomSite
    		, NomSecteur = @NomSecteur
    		, NomDemandeur = @NomDemandeur
    		, NOTéléphoneDemandeur = @NOTéléphoneDemandeur
    		, DateDemande = @DateDemande
    		, NomIntervenant = @NomIntervenant
    		, NOTéléphoneIntervenant = @NOTéléphoneIntervenant
    		, NoCFC = @NoCFC
    		, DesignationInstallation = @DesignationInstallation
    		, DesignationMachine = @DesignationMachine
    		, DescriptionPanne = @DescriptionPanne
    		, CausePanne = @CausePanne
    		, TacheEffectuee = @TacheEffectuee
    		, DateIntervention = @DateIntervention
    		, TempsIntervention = @TempsIntervention
    		, NBpceUtilise = @NBpceUtilise
    		, NoArtPceUtilise = @NoArtPceUtilise
    		, NoRefPceUtilise = @NoRefPceUtilise
    		, PrixPce = @PrixPce
    		, Commentaire = @Commentaire
    		, DateFinIntervention = @DateFinIntervention
    		, Garentie = @Garentie
    	WHERE	InterventionId = @InterventionId
    END
    D'autre part le choix des types de données que vous avez fait est incorrect :

    - une valeur de type char(50) occupe de toute façon 50 octets (1 octet par caractère), même si on y stocke une chaîne vide. Il vaudrait mieux utiliser un varchar(50), qui occupe autant d'octets qu'il y a de caractères dans la chaîne

    - utiliser le type numeric avec zéro chiffres significatifs après la virgule ne fait qu'augmenter inutilement l'espace nécessaire au stockage d'une valeur entière. D'autre part je doute qu'un temps d'intervention puisse occuper 18 chiffres, même s'il est stockée en secondes

    - le type money est à éviter car il produit des erreurs de calcul.

    @++

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 57
    Par défaut
    Mille Merci ! c'est tout bon !

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

Discussions similaires

  1. problème de mise a jour des controls
    Par samalive dans le forum MFC
    Réponses: 8
    Dernier message: 25/03/2007, 01h16
  2. Mise a jour d'un formulaire
    Par lecknaat dans le forum IHM
    Réponses: 19
    Dernier message: 15/01/2007, 17h58
  3. Réponses: 10
    Dernier message: 11/07/2006, 14h50
  4. Mise a jour dans un formulaire
    Par assane dans le forum Access
    Réponses: 2
    Dernier message: 05/07/2006, 08h57
  5. problème de mise a jour
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 15/04/2004, 16h09

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