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

WinDev Discussion :

écrire une procédure stockée de sql server à partir de windev


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de GodGives
    Inscrit en
    Août 2007
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2007
    Messages : 456
    Par défaut écrire une procédure stockée de sql server à partir de windev
    Bonjour!

    Comment pourrai-je écrire une procédure stockée de sql server à partir de windev et l'exécuter?

  2. #2
    Membre expérimenté Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Par défaut
    A priori la création de procédures stockées se fait dans l'analyse (insertion >> Collection de procédures stockées). C'est le cas pour HF et je ne pense pas qu'il y ait de différence avec SQL serveur. L'aide donne cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE PROCEDURE MyProc(@p1 int, @p2 int, @res int output)
    AS select @res=@p1+@p2
    return 2*@res
    La manipulation s'effectue par HExécuteRequête en initialisant au préalable une source de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaProc est une source de données
    et les variables utilisées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MaProc.p1 = 10
    MaProc.p2 = 20
    puis la procédure s'exécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SI HExécuteRequêteSQL(MaProc,"MaConnexion", ...
           hRequêteSansCorrection ,"MyProc @p1,@p2,@res out") ALORS
       Trace("res="+MaProc.res) 
       Trace("p1="+MaProc.p1) 
       Trace("p2="+MaProc.p2) 
       Trace("return_value="+MaProc.return_value)
    SINON
       Erreur(HErreurInfo())
    FIN
    A+

  3. #3
    Membre éclairé Avatar de GodGives
    Inscrit en
    Août 2007
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2007
    Messages : 456
    Par défaut
    J'utilise la version 10 et dans le menu <Insertion> de l'analyse, j'ai pas de sous-menu <Collection de procédures stockées>

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Par défaut
    Bonjour

    Je travail sur un projet où je vais chercher des informations d'une base(microsoft sql server), pour l'instant j'arrive à enregistrer toutes les valeurs de ma base de données vers un table. voici mon 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    PROCEDURE requete_selection_bdd()
    
    Sablier()
    
    LOCAL		
    	nCnx est un entier
    	requete est une chaîne
    	bResultat est un booléen	
    	
    nCnx = SQLConnecte("windev","","","FLINK","ODBC")//,"SQLOLEDB")
    SQLInfoGene()
    
    
    requete = "SELECT     *, Date_1 AS Expr1, Temp_Entree AS Expr2, Temp_Chaud AS Expr3, Temp_Sortie AS Expr4, Recircul AS Expr5, Num_Phase AS Expr6, Phase AS Expr7, Lait AS Expr8, Jour AS Expr9, Sectime AS Expr10 FROM  Archivage_P1 "
    
    bResultat = SQLExec(requete,"maRequete")
    
    SI bResultat=Faux ALORS
    	Info("La consultation de la base a échouée!!")
    FIN
    
    
    TANTQUE SQLAvance("maRequete")=0
    	
    //	SI tempsDebut..PartieHeure <=SQLLitCol("Date_1",1)<=tempsFin..PartieHeure ALORS
    		//si SQLLitCol("maRequete",9)=requeteTempsDebut et SQLLitCol("maRequete",1)<conv_tempsdebut ou 
    		TableAjoute(TABLE_Table1,SQLLitCol("maRequete",1)+TAB+SQLLitCol("maRequete",2)+TAB+SQLLitCol("maRequete",3)+TAB+SQLLitCol("maRequete",4)+TAB+SQLLitCol("maRequete",5)+TAB+SQLLitCol("maRequete",6)+TAB+SQLLitCol("maRequete",7)+TAB+SQLLitCol("maRequete",8)+TAB+SQLLitCol("maRequete",9)+TAB+SQLLitCol("maRequete",10))
    //	FIN
    FIN
    
    SQLFerme("maRequete")
    
    SQLDéconnecte()
    
    Sablier(Faux)
    Pour connaitre cette ligne de code, il faut que tu va sous sql server entreprise manager et tu va sur ta table clique droit de la souris, open table => query et la il te propose une ligne de code

    il faut aussi eller dans panneau de configuration, outil administration => source de données ODBC => et la du doit rentrer quelques parametres dans "sources de données utilisateur" et "sources de données système

    cordialement law56100

  5. #5
    Membre éprouvé
    Inscrit en
    Juin 2007
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 125
    Par défaut
    Bonjour,
    Il me semble que la possibilité de créer des procédures stockées directement dans Windev n'est apparu qu'à partir de la version 11.
    Il faut donc les créer dans SQL Server puis les exécuter grâce à SQLExec() ou HExécuteRequêteSQL().

    Remarque pour law56100 :
    En faisant SELECT * ... FROM Archivage_P1
    tu sélectionnes déjà toutes les rubriques de ta table Archivage_P1.
    Pourquoi rajoutes-tu Date_1 AS Expr1, Temp_Entree AS Expr2, Temp_Chaud AS Expr3... dans ta requête?

    Si ce n'est que pour remplir ta table TABLE_Table1 avec le résultat de la requête, tu pouvais utiliser SQLTable().

  6. #6
    Membre éclairé Avatar de GodGives
    Inscrit en
    Août 2007
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2007
    Messages : 456
    Par défaut
    Citation Envoyé par law56100 Voir le message
    Bonjour

    Pour connaitre cette ligne de code, il faut que tu va sous sql server entreprise manager et tu va sur ta table clique droit de la souris, open table => query et la il te propose une ligne de code

    il faut aussi eller dans panneau de configuration, outil administration => source de données ODBC => et la du doit rentrer quelques parametres dans "sources de données utilisateur" et "sources de données système
    en ce qui concerne l'accès à la base sql server et la manipulation des requêtes, je n'ai aucun problème. Par contre, ce qui m'inquiète ici, c'est les procédures stockées.

    Citation Envoyé par Tasumy Voir le message
    Bonjour,
    Il me semble que la possibilité de créer des procédures stockées directement dans Windev n'est apparu qu'à partir de la version 11.
    Il faut donc les créer dans SQL Server puis les exécuter grâce à SQLExec() ou HExécuteRequêteSQL().
    Si la procédure est créée au niveau de la base de données, n'est-il pas nécéssaire de l'importer dans l'analyse avant d'en faire usage? sinon, elle serait considérée comme un fichier inconnu.

    En ce qui concerne l'import dans l'analyse de windev, seules les tables et les requêtes peuvent être importées.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/09/2008, 14h49
  2. Réponses: 0
    Dernier message: 30/09/2008, 01h14
  3. Appel d'une procédure stockée de SQL Server
    Par IRAD dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/04/2008, 12h36
  4. Réponses: 2
    Dernier message: 20/03/2007, 17h00
  5. Réponses: 2
    Dernier message: 05/12/2005, 16h39

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