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

HyperFileSQL Discussion :

Procédure stockée et résultat de requetes vides


Sujet :

HyperFileSQL

  1. #1
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut Procédure stockée et résultat de requetes vides
    Bonjour,

    J'ai un problème mystère avec mes procédures stockées. J'ai certaines requètes qui aboutissent et d'autres pas.

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HExécuteRequêteSQL(Numtarif,hRequêteDéfaut,"SELECT No_Tarif FROM Lots WHERE Lots.IDLots = '"+IDduLot+"'")
    Avec le même ID de lot (vérifié en transmettant la requête) j'obtiens une valeur dans Numtarif.No_Tarif si exécuté du logiciel et une chaine vide si exécuté dans une procédure stockée.

    Une idée ??

    J'ai tenté de faire une requête stockée et utiliser HExécuteRequete() (ce que j'ai fait pour les autres requêtes de cette procédure stockée) mais c'est pareil, à chaque fois il n'y à pas de données alors que HExécuteRequete renvoie True.

    Merci

    Attention le .NET sur PDA peut causer des chutes de cheveux

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Bonjour,

    Dans la requête que tu montres tu utilises des simple quote pour entourer l'ID alors que généralement un ID est numérique. Si ton ID est bien numérique, évites de faire un test entre un champ numérique et une valeur alphanumérique.

    Possible que le problème vienne de là.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Ahh, merci, en effet, je vais tester sans les quotes, bien que j'ai éssayé avec une fonction crée dans Windev (même résultat).

    Si j'arrive à refaire marcher les procédures stockés, car depuis tout à l'heure j'ai eu un plantage de Windev et depuis à chaque modifs des procédures stockés Windev essaye de me recopier toute la collection de procédures dans les procédures globales du projet et ensuite il me crie à l'ambiguité... et si j'efface à partir des procédures ça efface les stockés avec... pfffff J'ai beau à recompiler, réparer effacer et recréer la collection etc.. j'arrive pas à récup un projet qui marche !

    Attention le .NET sur PDA peut causer des chutes de cheveux

  4. #4
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par Harry Voir le message
    Ahh, merci, en effet, je vais tester sans les quotes, bien que j'ai éssayé avec une fonction crée dans Windev (même résultat).

    Si j'arrive à refaire marcher les procédures stockés, car depuis tout à l'heure j'ai eu un plantage de Windev et depuis à chaque modifs des procédures stockés Windev essaye de me recopier toute la collection de procédures dans les procédures globales du projet et ensuite il me crie à l'ambiguité... et si j'efface à partir des procédures ça efface les stockés avec... pfffff J'ai beau à recompiler, réparer effacer et recréer la collection etc.. j'arrive pas à récup un projet qui marche !
    Courage !! et il en faut avec Windev :p
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  5. #5
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Citation Envoyé par DelphiManiac Voir le message
    Courage !! et il en faut avec Windev :p
    Merci !! Pourtant ça roulais superbement depuis 3 jours

    Bon, tant que j'enregistre pas le projet j'ai pas de soucis, (avec la version de ce matin..)
    Voici la dernière mouture de la requète

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Price est une chaîne
    Numtarif est une Source de Données
    Price = "A"
    SI HExécuteRequêteSQL(Numtarif,hRequêteDéfaut,"SELECT Lots.No_Tarif FROM Lots WHERE Lots.IDLots = "+IDduLot) ALORS
    	Price = Numtarif.No_Tarif
    FIN
     
    RENVOYER Pmoins4 + ";" + Pmoins3 + ";" + Pmoins2 + ";" + Pmoins1 + ";" + Pplus1 + ";" + Pplus2 + ";" + Pplus3 + ";" + Pplus4 + ";" + Price + "end"
    Je récupère bien le end, mais pas le A, donc le HExécuteRequêteSQL renvoie un OK mais données vide.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  6. #6
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    [edit]Tu n'as oublié de lire ton enregistrement ? A priori il faudrait faire un HLitxxxxx après l'éxécution de la requête. Voir la doc qui parle de faire un HLitPremier sans rafraîchissement. http://doc.pcsoft.fr/fr-fr/?hexecuterequetesql-fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HLitPremier("MaRequête", hSansRafraîchir)
    J'ai peut être pas tout compris non plus, dans le 1er post tu parles de procédure stocké qui ne renvoie rien.

    Peux tu re-préciser où la récupération d'informations fonctionne et où elle ne fonctionne pas et avec quel code dans les 2 cas ?



    P.S. : Quel type de base ? Hyperfile ? Si oui, fais un réindex, de là a ce qu'une requête utilise l'index et l'autre non et que l'index soit légèrement en vrac !!
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  7. #7
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Oui, c'était ça. Il fallait un HLitPremier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HLitPremier(Numtarif,hSansRafraîchir)
    A noter que le HLitPremier est facultatif dans le cote côté client !
    Et également pour les requêtes exécutés avec HExécuteRequête
    Donc une différence de gestion entre le code client et le code de la procédure stockée sur le serveur exclusivement pour HExécuteRequêteSQL.

    J'ai peut être pas tout compris non plus, dans le 1er post tu parles de procédure stocké qui ne renvoie rien.
    Requête qui ne renvois rien quand exécuté dans une procédure stockée.

    Pour expliquer ma méthodologie : Vu que la gestion des erreurs et des tests est quelque peu amputé dans les procédures stockés je les prépare en créant une "Procédure temporaire" dans l'appli. Une fois que ma procédure fonctionne de manière optimale, je la teste et chronomètre.

    Ensuite je crée ma procédure stockée en copiant le code de la procédure temporaire et je refais mes tests et chronométrages. Double avantage : facilité pour de débuguage en local (pas à pas etc) et possibilité de comparer les perfs et quantifier le gain obtenu grâce à l'utilisation de la procédure stockée.

    En tout cas merci DelphiManiac, je tournais en rond depuis un moment avec ce problème

    Attention le .NET sur PDA peut causer des chutes de cheveux

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

Discussions similaires

  1. [AC-2007] Procédure stockée avec table temporaire retourne vide
    Par Piou2fois dans le forum Projets ADP
    Réponses: 1
    Dernier message: 07/07/2015, 17h54
  2. Procédure stockée - récupérer résultat requete
    Par kanak09 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2010, 13h48
  3. Réponses: 6
    Dernier message: 30/04/2010, 08h59
  4. Procédure Stockés et Résultat
    Par ZIED dans le forum Requêtes
    Réponses: 7
    Dernier message: 19/12/2008, 09h46
  5. Réponses: 1
    Dernier message: 13/01/2008, 21h02

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