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

VB.NET Discussion :

Procedure stockée d'insertion qui ne fait rien


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut Procedure stockée d'insertion qui ne fait rien
    Bonjour le forum ,

    Je suis en train de dev une application qui me permet de gérer les PC de la boîte:

    J'ai un formulaire d'insertion de PC qui appelle une procédure stockée pour insérer le nouveau composant (ça c'est ok ), puis une fois que cet appel est fini je fait une autre requête d'insertion qui va me sélectionner certain champs de la table PC pour les mettre dans la table historique afin d'avoir un suivit de mes machines (réception ,installation, maintenance ...)

    Voici la procédure stocké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
    et QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		<...>
    -- Create date: <28.04.2008>
    -- Description:	<Gerrer le status d'un PC en vue de son historique>
    -- =============================================
    ALTER PROCEDURE [dbo].[PS_PC_Insert_Historique]
    	-- Add the parameters for the stored procedure here
    	@SecID as nchar(20)
     
    AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
     
        Insert into HistoriquePC 
    	(SecID, Serial, NouveauStatus ,[User] , Date_Acte )
    	Select PC.SecID, PC.Serial , PC.Status, Us.EMEA ,  CURRENT_TIMESTAMP
    	From PC as PC , [User] as Us
    	Where PC.SecID = @SecID
    	AND   US.SecID = @SecID
    END
    Quand je fait clic droit sur cette procédure et exécuté la procédure je rentre le paramètre SecID il retourne 0 si maintenant je fait :

    USE [GPInfos]
    GO

    DECLARE @return_value int

    EXEC @return_value = [dbo].[PS_PC_Insert_Historique]
    @SecID = N'1'

    SELECT 'Return Value' = @return_value

    GO
    Cela fonctionne et si je fait l'appel à cette procédure via VB :
    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
    #Region "Requete Ajout : PC dans la table HistoriquePc"
        Private Sub RequeteAjoutPcHistorique()
            If Me.TB_SecId.Text = "" Then
                MsgBox("Attention veuillez remplir le champs SecID")
                Exit Sub
            Else
                maCmd = maCnx.CreateCommand
                maCmd.CommandType = CommandType.StoredProcedure
                maCmd.CommandText = "PS_PC_Insert_Historique"
     
                Try
                    'Creation et déclaration des parmètres
                    maCmd.Parameters.Add(New SqlParameter("@SecID", SqlDbType.NChar, 20))
                    maCmd.Parameters("@SecID").Value = Me.TB_SecId.Text
                Catch ex As Exception
                    MsgBox("Erreur retournée : " & ex.ToString)
                End Try
     
                Try
                    'Execution de la requete
                    maCmd.ExecuteNonQuery()
                Catch ex As SqlException
                End Try
            End If
        End Sub
    #End Region
    Il ne se passe rien ....
    Je suis un peu perdu .
    Merci pour votre aide .

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par javaboy Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                Catch ex As SqlException
                End Try
    Il ne se passe rien ...
    Et ça t'étonne ?
    Si tu ne fais rien quand une exception est déclenchée, c'est normal. Tu pourrais au moins afficher un messagebox avec l'exception récupérée.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    La je vais me permettre une familiarité : j'ai envie de dire dans le mille emile,
    Il ne soulève même pas d'erreur le souci vient d'ailleurs , lorsque j'execute le programme pas à pas il ne rentre pas dans le try , sinon je pense que j'aurais vu qu'il manquait l'affichage de l'erreur .

    A propos saumon agile j'ai envie de te félicité et te remercier pour ton application "information box" ça marche du feu de dieu !

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par javaboy Voir le message
    lorsque j'execute le programme pas à pas il ne rentre pas dans le try
    Si tu sais où il passe, tu dois savoir pourquoi non ?
    Quand tu dis qu'il ne rentre pas dans le try, tu ne voudrais pas dire qu'il ne rentre pas dans le catch ?

    Citation Envoyé par javaboy Voir le message
    A propos saumon agile j'ai envie de te félicité et te remercier pour ton application "information box" ça marche du feu de dieu !
    Merci
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    En fait il passe dans toutes les lignes ne génère par d'erreur et sors de sa sub normalement c'est pour cela que je suis :
    un peu perdu (cf 1message)

    Voila ma manière de procédé (des fois que ce soit elle qui ne convient pas ):

    Un formulaire contenant x champs qui sont des informations sur la réception d'un nouveau pc avec comme clef primaire le champs SecID
    Sur clique Ok :
    -Analyse des champs du formulaire
    -Implémentation de la table PC (qui contient tous les PC)
    -Puis requête d'insertion dans la table historique du select de certains champs de la table PC avec comme clause le SecID et l'heure.

    Est ce que faire l'insertion puis une requête select (sur l'enregistrement fraichement inséré) juste derrière peut poser problème ?

    Sinon je ne voit pas bien d'ou vient le problème

    Merci

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Points : 99
    Points
    99
    Par défaut
    Bon ba j'ai fait a la manière de l'insertion d'un PC :

    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
    56
    57
    58
    59
    60
    61
    62
        Private Sub RequeteAjoutPcHistorique()
            Dim Status As Int32
            Dim Motif As String
     
            If Me.TB_SecId.Text = "" Then
                Status = 0
                Motif = "Reception de la commande"
            Else
                Status = 1
                Motif = "Mise en stock du PC"
     
            End If
            If Me.TB_SecId.Text = "" Then
                MsgBox("Attention veuillez remplir le champs SecID")
                Exit Sub
            Else
                maCmd = maCnx.CreateCommand
                maCmd.CommandType = CommandType.StoredProcedure
                maCmd.CommandText = "PS_PC_Insert_Historique2"
     
                Try
                    'Creation et déclaration des parmétres
                    With maCmd.Parameters
                        .Add(New SqlParameter("@SecID", SqlDbType.NChar, 20))
                        .Add(New SqlParameter("@Serial", SqlDbType.NChar, 20))
                        .Add(New SqlParameter("@Date_Acte", SqlDbType.DateTime))
                        .Add(New SqlParameter("@Motif", SqlDbType.VarChar, 500))
                        .Add(New SqlParameter("@AncienStatus", SqlDbType.Int))
                        .Add(New SqlParameter("@NouveauStatus", SqlDbType.Int))
                        .Add(New SqlParameter("@User", SqlDbType.NChar, 10))
                    End With
     
                    'Attribution des valeurs aux paramètres
                    With maCmd
                        .Parameters("@SecID").Value = TB_Serial.Text
                        .Parameters("@Serial").Value = TB_Serial.Text
                        .Parameters("@Date_Acte").Value = TB_DateLivraison.Text
                        .Parameters("@Motif").Value = motif
                        .Parameters("@AncienStatus").Value = "0"
                        .Parameters("@NouveauStatus").Value = Status
                        .Parameters("@User").Value = "stock"
                    End With
     
                Catch ex As Exception
                    MsgBox("Erreur retournée : " & ex.ToString)
                End Try
                'Try
                'Creation et déclaration des parmètres
                ' maCmd.Parameters.Add(New SqlParameter("@SecID", SqlDbType.NVarChar, 20))
                ' maCmd.Parameters("@SecID").Value = Me.TB_SecId.Text
                'Catch ex As Exception
                'MsgBox("Erreur retournée : " & ex.ToString)
                'End Try
     
                Try
                    'Execution de la requete
                    maCmd.ExecuteNonQuery()
                Catch ex As SqlException
                    MsgBox("Erreur retournée : " & ex.ToString)
                End Try
            End If
        End Sub
    Je déleste ....
    Merci pour te conseils Monsieur SaumonAgile

Discussions similaires

  1. INSERT qui ne fait rien
    Par Xaf dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/06/2008, 16h15
  2. Réponses: 10
    Dernier message: 16/11/2006, 21h36
  3. [PHP-JS] Méthode flush() qui ne fait rien
    Par Khrysby dans le forum Langage
    Réponses: 9
    Dernier message: 21/05/2006, 19h55
  4. [debutant]programme qui ne fait rien.
    Par Battosaiii dans le forum Interfaces Graphiques en Java
    Réponses: 10
    Dernier message: 04/12/2005, 22h19
  5. procédure stockée qui ne fait rien
    Par trotters213 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 10/03/2005, 20h25

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