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 :

Recupérer valeur d'une fonction SQL SERVER avec hexecuteRequeteSQL


Sujet :

WinDev

  1. #1
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut Recupérer valeur d'une fonction SQL SERVER avec hexecuteRequeteSQL
    Comme le titre l'indique, je voudrais récupérer une valeur d'une fonction SQL Server.
    Voici ma fonction SQL de test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE FUNCTION dbo.TEST_FUNCTION () RETURNS VARCHAR(50)
    AS
    BEGIN
    DECLARE @query VARCHAR (50)
    SET @query = 'Hello'
    RETURN @query
    END
    Voici mon code windev:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SD_Source est une source de donnée
    ma_req est une chaîne = "dbo.TEST_FUNCTION"
    HExécuteRequêteSQL(SD_Source,"S_nomCon",hRequêteSansCorrection,ma_req)
    je précise que hexecuterequetesql se passe bien et retourne vrai. Par contre, je ne vois pas du tout comment récupérer dans windev la valeur de @query.
    Merci.
    Vincent
    http://vroy1.free.fr

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Bonjour,

    S'il s'agit d'une UDF, je ne pense pas que vous puissiez l'exécuter comme ça et en récupérer la valeur. Je vois ça plutôt de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ma_req est une chaîne = "SELECT dbo.TEST_FUNCTION as result"
    HExécuteRequêteSQL(SD_Source,"S_nomCon",hRequêteSansCorrection,ma_req)
    HLitPremier(SD_Source)
    SI PAS HEnDehors(SD_Source) ALORS
      trace(SD_Source.result)
    FIN
    Il faut voir une UDF comme une fonction scalaire telle getDate().


    Par contre en utilisant une procédure stockée, vous pouvez l'exécuter directement et récupérer une valeur de retour. C'est documenté dans l'index de l'aide : Procédure stockée (Accès Natif SQL Server), Récupérer la valeur de sortie d'une procédure

  3. #3
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    En effet, j'avais deja essayé avec SELECT ..., mais sans succès.
    Sinon, en ce qui concerne les procédures stockées, je connais également, mais ce sont vraiment les UDF que je veux tester avec windev
    Merci
    a+

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Quand tu dis que ça ne fonctionne pas, c'est à quel niveau que tu as eu l'erreur ?

    Lorsque tu as essayé, es-tu bien sûr d'avoir précisé hRequêteSansCorrection ? Car accéder au résultat d'une UDF avec un "SELECT monUDF()" fonctionne.

  5. #5
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    C est etrange car si je fais SELECT TEST_FUNCTION(), ca me sort :
    'TEST_FUNCTION' n'est pas un nom de fonction reconnu.
    Et oui pour hrequetesanscorrection

    A+

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Préfixez l'UDF du schéma auquel elle appartient (à tout hasard : dbo ?)

  7. #7
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Arrgg pourquoi n'y ais je pas pensé avant !!
    Ca fonctionne beaucoup mieux dorénavant !!
    Merci du coup de main Vincent.
    A+

  8. #8
    Invité
    Invité(e)
    Par défaut Exécuter un script SQL
    erreur

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

Discussions similaires

  1. Récupérer les valeures d'une requête SQL server
    Par leratx dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/02/2011, 00h11
  2. Appel d'une fonction dans une fonction (sql server 2005)
    Par catchouse dans le forum Développement
    Réponses: 10
    Dernier message: 06/05/2009, 12h03
  3. [Débutant] Appel d'une fonction + SQL Server
    Par SupaDan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/05/2008, 12h14
  4. ecrire à partir d'une macro sous excel une valeur dans une base sql server
    Par Guena5635 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2008, 08h53
  5. Changer le nom de la colonne d'une bd Sql Server avec VB 2005
    Par foufidou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/04/2007, 00h53

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