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 un recordset d'une PS sur SQLServer


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut Recupérer un recordset d'une PS sur SQLServer
    Bonjour à tous,

    Voici le contexte :

    -> j'attaque une base SQLServer via OLEDB (instruction hConnecte...)
    -> je souhaite faire une recherche en case INSENSITIVE + accent INSENSITIVE
    -> nous maintenons des bases SQL2000 (donc pas de COLLATE et pas de FUNCTION perso)

    J'ai donc créée une procédure stockée qui renvoie un RECORDSET... (inspiré par le fonctionnement d'un programme d'un de mes collègues en VB6)...
    J'appelle la procédure avec un hExecuteRequeteSQL...

    Sauf que Windev ne reconnait pas le recordset en retour d'execution de ma procédure stockée.... J'ai trouvé une doc (d'une limpidité époustouflante !) http://doc.pcsoft.fr/?5515009 mais elle n'aborde pas le cas des retours de recordset !
    J'ai également trouvé un post de 2005 dans lequel l'auteur évoque ce problème http://forum.pcsoft.fr/fr-FR/pcsoft....F660218998CCB9 mais aucune solution formelle est proposée. Il précise qu'il est possible les ordres SQLXXX sont à privilégier (mais pas de véritable certitude). Si je passe sur les instructions SQLXXX je dois recoder en profondeur mon composant et donc j'aimerais savoir si vous avez été confronté à ce pb...

    Merci pour vos éventuels avis et expériences !

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Tant pis... du coup j'ai modifié ma PS qui enregistre désormais les résultats dans une table qu'elle crée que j'interroge puis DROP depuis Windev... mode "usine à gaz" on

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Par défaut
    Bonjour à tous,

    Dans une discussion qui concerne WD15 + SQL Server + accès OLEDB, il est question d'exécuter une procédure stockée qui renvoie un jeu de données.
    http://forum.pcsoft.fr/fr-FR/pcsoft....oledb/read.awp

    Apparemment, c'était un succès...

    Bon courage.

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Merci beaucoup je n'avais pas trouvé ce fil !

    J'y jette un oeil

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 557
    Par défaut
    Bonjour,

    Je ne sais pas si c'est trop tard, mais ayant travaillé sous MS-SQLServer2000, je passais par des PS qui retournait une "TABLE" du coup avec un SQLExec(), je parcourais simplement le résultat.

    Ex rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE FUNCTION dbo.FTT_TOP10_VENTE(@pnAnnee int)
    RETURNS @TMP_TOP10 TABLE
    (
    Produit CHAR(30),
    Rang INT
     
    ) AS
    BEGIN
    // on crée la requête TOP et pour chaque ligne on l'enregistre dans la table de retour
    ...
    INSERT INTO @TMP_TOP10....
    ...
    END
    Côté WD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    rsSource est une chaine = "top10"
     
    si pas sqlexec("SELECT * FROM .FTT_TOP10_VENTE(2014) ORDER BY Rang") alors
    ...
    sinon
    ...
    //Parcours du recordset
    fin

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Merci à vous mais y a quelque chose que je dois louper car rien ne marche.... sauf ma combine de filou....

Discussions similaires

  1. [C#][SQLServer]Résultat d'exécution d'une requête sur SQLServer
    Par Chakalaka dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/04/2010, 12h32
  2. trigger sur une vue sur sqlserver 2005
    Par thor76160 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 07/03/2009, 11h41
  3. connexion a une bs sur sqlserver 2005
    Par kirtap1969 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 27/08/2008, 17h06
  4. Recupérer le résultat d'une requête sur une table Firebird
    Par defluc dans le forum Bases de données
    Réponses: 7
    Dernier message: 20/04/2007, 18h30
  5. capacité d'une base sur sqlserver 2005
    Par Phiss dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/07/2006, 17h02

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