Fonction global dans une requete sql ?
Anonyme
Bonjour je dois créer une requête SQL en prenant en compte la distance des villes.

J'ai créée une fonction "distance" qui calcule la distance avec les coordonnées GPS.

J'aimerais savoir si je peux l'apeller directement dans la requete SQL vu qu'apparement les requêtes SQL sont parsées une première fois.

Egalement si quelqu'un connaitrait la syntaxe ;)

voici le code
/////////////////////

ReqClient est une source de données
lat1, long1 sont des réels

HExécuteRequêteSQL (ReqClient , "SELECT cp, manif, distance(lat1,long1,lat,long) as dist FROM ville where dist<10 AND manif='h'")

lat et long sont des champs de la base de données




Contribution le : 06/10/2005 15:41
Créer un fichier PDF de la contribution Imprimer


Re: Fonction global dans une requete sql ?
Anonyme
tu as essayer de cette manière :

HExécuteRequêteSQL (ReqClient , "SELECT cp, manif, '"+distance(lat1,long1,lat,long)+'" as dist FROM ville where '"+distance(lat1,long1,lat,long)+"'<10 AND manif='h'")

Moi je dit ca mais je dit rien ... je ne suis pas du tout sur que ca fonctionne ! mais bon ca coûte rien de tester

Contribution le : 06/10/2005 15:54
Créer un fichier PDF de la contribution Imprimer


Re: Fonction global dans une requete sql ?
Developpeur WDF
Inscrit:
21/06/2005 18:17
Post(s): 115
c moi qui est fait la reponse au dessus mais j'etait pas loger !
Tien nous au courrant du test

Contribution le : 06/10/2005 15:56
Créer un fichier PDF de la contribution Imprimer


Re: Fonction global dans une requete sql ?
Anonyme
Ben le problème déjà c'est que je vais executer 2 fois la fonction distance...

Sinon je vais récupérer le tableau d'enregistrement trié sur les autres critères.
Je le parcours et je lance la fonction a chaque fois pour obtenir un autre tableau d'enregistrement lol.

Mais c'est vrai que c'est pas super optimized...

Contribution le : 06/10/2005 16:02
Créer un fichier PDF de la contribution Imprimer


Re: Fonction global dans une requete sql ?
Anonyme
reqclient est une Source de Données
lat1,long1 sont des réels

Info(HConnecte(ville))

Info(HExécuteRequêteSQL (reqclient , "SELECT cp, " + orthodromie(lat1,long1,latitude,longitude) + " as dist FROM ville where dist<10"))

et ca me renvoi 1 puis 0 pour la requête

Il me souligne en rouge latitude et longitude qui ne sont pas des variables mais des champs de la requêtes...

Je viens d'essayer pleins de trucs mais sans résultats..

Contribution le : 06/10/2005 16:15
Créer un fichier PDF de la contribution Imprimer


Re: Fonction global dans une requete sql ?
Developpeur WDF
Inscrit:
21/06/2005 18:17
Post(s): 115
HExécuteRequêteSQL (ReqClient , "SELECT cp, manif, '"+distance(lat1,long1,+"lat, long) as dist FROM ville where dist<10 AND manif='h'"))

Et comme ca ca donne quoi ?

Contribution le : 06/10/2005 17:21
Créer un fichier PDF de la contribution Imprimer


Re: Fonction global dans une requete sql ?
Anonyme
il me dit que je passe que 2 paramètres sur les 4

Contribution le : 06/10/2005 18:04
Créer un fichier PDF de la contribution Imprimer


Re: Fonction global dans une requete sql ?
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Vous n'avez pas à ma connaissance si vous utilisez une base de données HF d'autres solutions que de filtré votre fichier sur le critère manif et de parcourir le fichier et ainsi de ne retenir que les enregistrement qui renverront vrai a votre fonction Distance

Exemple
 
MaCle est une chaine
Dist est un reel

MaCle = HFiltre(Ville,Manif,"h"+caract(0),"h"+caract(255))
MaZone est une chaine = "ZM"
MemCrée(MaZone)
HLitPremier(Ville,MaCle)
TantQue Pas HEndehors()
 Dist = distance(Ville.lat,Ville.long)
 Si Dist < 10 Alors
  MemAjoute(MaZone,Dist,HnumEnr(Ville))
 Fin
 HLitSuivant(Ville,MaCle)
Fin


La zone memoire contient tout les numéros d'enregistrement pour lesquelles la fonction Distance renverra une distance inferrieur à 10.
dans cette exemple et afin d'optimiser la vitesse d'exécution il est necessaire que le champ Manif soit une clé dans le fichier.

Ce code à été saisie à la volée et peu comporter des erreurs.

Contribution le : 06/10/2005 22:16
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2