Tags : type, HFSQL
16 mars 2018
publié par 

A partir de la version 23, le WLangage propose le type Requête SQL permettant la saisie de requêtes directement dans l'éditeur de code :

<Nom Requête SQL> est une Requête SQL =
[
<Code SQL de la requête>
]

 

Une fois que la requête a été exécutée par la fonction HExécuteRequete, elle peut à son tour être utilisée dans une autre requête de sélection, ou de mise à jour. Il faut cependant savoir que le nom utilisé par le moteur HFSQL pour l'exécution réelle de la requête, n'est pas celui de la variable.

 

Ainsi le code suivant :

 

MonInterrogation est une Requête SQL =
[
SELECT * FROM CLIENT
]
HExécuteRequête(MonInterrogation)
AutreInterrogation est une chaîne = "SELECT * FROM MonInterrogation"
ReqAvecMonInterrogation est une Source dede Données
HExécuteRequêteSQL(ReqAvecMonInterrogation, AutreInterrogation)

 

Provoque un déclenchement du mécanisme de sécurité du WLangage avec le retour "Fichier inconnu" pour le FROM :

 

Afin de réutiliser la requête, il faut utiliser dans le FROM son nom qui peut être obtenu par la propriété ..Nom. Le code sera alors :

 

MonInterrogation est une Requête SQL =
[
SELECT * FROM CLIENT
]
HExécuteRequête(MonInterrogation)
AutreInterrogation est une chaîne = "SELECT * FROM %1"
AutreInterrogation = ChaîneConstruit(AutreInterrogation, MonInterrogation..Nom)
ReqAvecMonInterrogation est une Source dede Données
HExécuteRequêteSQL(ReqAvecMonInterrogation, AutreInterrogation)

 

 

A noter que ce principe s'applique également aux variables de type source de données, lorsque l'option "nommage automatique des sources de données" est coché dans le volet "Compilation" de la description du projet. Elles peuvent être réutilisées dans du code SQL soit :

  • en utilisant la propriété ..Nom comme ci-dessus,
  • en forçant un nom dans la déclaration de la variable :

    MaSource est une Source dede Données <Description=MaSource>

    Grâce au nom donné en <description=...> on peut faire un FROM MaSource dans une autre requête.

 

 

 

 

< Retour

5 commentaires

Futinf Zhang
22/03/2018 - 07:20 - Répondre
Bonjour, Je sais que vous recevez beaucoup de propositions publicitaires ou sans rapport avec votre contenu, alors je vais aller droit au but : j'aimerais beaucoup vous soumettre un article en tant qu'invité ou sponsorisé pour qu'il soit publié sur votre site. Cet article est en rapport avec le contenu de votre site web, et bien sûr, il est utile et informatif, ce que votre audience pourrait apprécier. Si vous acceptez les articles extérieurs ou sponsorisés, j'aimerai connaitre le prix pour pouvoir publier sur votre site. En vous remerciant par avance pour votre temps et l'attention que vous porterez à ma demande! Sincères amitiés. Futing

Philippe
19/04/2018 - 10:27 - Répondre
en winDev Ok en Windev Mobile : mode simulateur Ok mais pas sous Android Les requetes sur sources de données ne fonctionnent pas avec WM23 sous Android On obtient un message spécifiant que la source de donnée est inconnue Souci déjà notifié au ST référence ST/E938140 et toujours pas de réponse

Guillaume Bayle
19/04/2018 - 14:16 - Répondre
Bonjour, en effet le Framework Android ne gère pas encore ce cas, la demande a été faite à l'équipe Dev Android (cf email envoyé en parallèle).

Philippe
19/04/2018 - 15:35 - Répondre
Merci Guillaume pour la réactivité ... nous espérons que le correctif arrivera rapidement. nous ne sommes pas les seuls dans le cas.... Les applications développées avec WM 23 ne peuvent en effet pas fonctionner avec ce mode de dev tant que le correctif ne sera pas disponible. Mais nous savons tous que Guillaume est quelqu'un de très professionnel et qu'il fera le nécessaire pour que ce correctif soit disponible avant l'update 3... et surtout avant la version 24 ;-)

Philippe
03/05/2018 - 12:06 - Répondre
PCSoft a tenu ses promesses et mis à un correctif à diposition qui fonctionne. en mode Android, les requetes sur sources de données fonctionnent correctement à présent avec WM23 sous Android Un merci tout particulier à Guillaume Bayle pour se réactivité

Publier un commentaire : 
Votre adresse email ne sera pas publiée