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 des plus simples


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut Procédure Stockée des plus simples
    Voici ma procédure toute bête pour comprendre comment ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE PROCEDURE Test
    (
    	@nom	varchar(20)
    )
     
     AS
     
    RETURN 1
    GO
    Dans mon code j'ai fait une fonction
    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
     
      public int executeStoredProcedure(String Pname){
     
            String query = new String("{call "+Pname+"}");
     
             try {
     
                 CallableStatement cs = conn.prepareCall("{call "+Pname+"}");
                 ResultSet rs = cs.executeQuery();
                 return rs.getInt(0);
     
     
                  } catch( SQLException se ) {
                log.error( "SQL Exception:" ) ;
     
                  // Loop through the SQL Exceptions
                while( se != null )
                {
                    log.error( "State  : " + se.getSQLState()  ) ;
                    log.error( "Message: " + se.getMessage()   ) ;
                    log.error( "Error  : " + se.getErrorCode() ) ;
     
                    se = se.getNextException() ;
                }        
            }
            catch( Exception e )
            {
                 log.fatal("FATAL:", e);
            }
     
            return -1;
        }
    L'appel à la fonction est faite ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
             //procédure stockée
              int resultat = tool.executeStoredProcedure("Test");
    Et je récupère comme résultat toujours -1 .
    Pourquoi?
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    ou tout simplement comment appeler cette procédure stockée à partir de Java?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE PROC dbo.Test
    AS
    DECLARE @rc Int
     BEGIN
       SELECT @rc = 0
       RETURN @rc
       END
    GO
    Puis comment Récupérer la valeur?

    FAQ
    http://java.developpez.com/faq/jdbc/...lablestatement

  3. #3
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Bonjour,
    si votre code doit retourner des valeurs il faut alors définir une fonction et non pas une procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE FUNCTION Test
    (
    	@nom	varchar(20)
    ) returns int
     
     AS begin
    RETURN 1
    end;
    GO

  4. #4
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    Ok J'étais restée sur le thème procédure stockée....

    Comment la rentrer dans le serveur SQL SERVER?
    Je vois un onglet Fonctions définies par l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE FUNCTION Test
    (
    	@nom	varchar(20)
    ) returns int
     
     AS begin
    RETURN 1
    end;
    GO
    L'appel de cette fonction se fait-elle de la même façon que pour les procédures stockées?

  5. #5
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Bonjour,
    Pour créer cette fonction vous pouvez:
    1/ Exécuter SQL Server Management Studio
    2/ Demander la création d'une nouvelle requête
    3/ vous positionnez sur la base sur laquelle vous souhaitez définir cette requête: 4/ Copier/coller le script de création de la base et l'éxécuter (avec F5)

  6. #6
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    Bonjour , Voici ma procédure stockée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE PROCEDURE dbo.PDA
         @Image         int           OUTPUT
    AS
         SET  @Image= 12
    GO
    et mon code Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                  cstmt = tool.getConnection().prepareCall("{dbo.PDA(?)}");           
                  cstmt.registerOutParameter(1, java.sql.Types.INTEGER); //codeRetour
                  cstmt.execute();
    Ca ne fonctionne pas .
    Le code après le execute n'est jamais executé.

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

Discussions similaires

  1. simple select plus performant que procédure stockée
    Par dens19 dans le forum Développement
    Réponses: 5
    Dernier message: 01/09/2010, 10h36
  2. Procédure stockée : comment faire plus simple / plus fiable ?
    Par allaume dans le forum Accès aux données
    Réponses: 1
    Dernier message: 08/08/2007, 12h17
  3. Récupération des paramètres en sortie d'1 procédure stockée
    Par navis84 dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/12/2004, 11h40
  4. Réponses: 5
    Dernier message: 04/10/2004, 18h20
  5. importer des procédures stockées
    Par mohamed dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/09/2004, 16h30

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