Les variables de type sources de données sont très pratiques et très utilisées pour manipuler des requêtes, des alias, des vues. Les sources de données sont globales au contexte HFSQL dans lequel elles ont été décrites. C'est bien sûr très pratique mais cela nécessite d'être attentif lors de leur utilisation.

 

Depuis la version 24, il existe trois possibilités de nommage de ces variables pour permettre une utilisation plus avancée, notamment dans les applications nTiers basées sur une programmation Objet.

 

 

1 – La source de données utilise le même nom que la variable :

C'est le cas le plus simple d'utilisation. Il est a privilégier si vous utilisez une programmation classique sans contexte indépendant et sans programmation objet.

Pour les anciennes applications, il faut conserver ce mode tant que le code n'a pas été audité et ce pour éviter les erreurs de type : Source de données inconnue.

 

2 – La source de données utilise un nom automatique :

Cela permet de sécuriser l'accès à cette variable si par exemple elle est utilisée dans deux contextes HFSQL différents. Pas de mélange possible dans ce cas, chacune des variables est bien indépendante.

Attention, dans ce cas, les anciennes syntaxes utilisant des noms d'alias entre guillemets ne pourront fonctionner.

 

3 – La source de données utilise un nom automatique et la prise de référence est possible :

Ici aussi l'accès est protégé mais en plus, la variable ne sera libérée que lorsque les objets en référence seront détruits. C'est le mode à privilégier si vous utilisez une programmation objet de type nTiers.

Dans ce cas, le code suivant devient possible et sécurisé :

 

ClientsItalie est une Source de données

REQ_Client_Pays.pPays = "ITA"
HExécuteRequête(REQ_Client_Pays)

ClientsItalie = REQ_Client_Pays

 

Attention, dans ce mode "Nom automatique avec prise de référence", il n'est pas autorisé de forcer le nom de la source de données avec la syntaxe (syntaxe illustrée dans ce billet) :

sdMaSource est une Source dede Données = "NomDeMaSource"

Cette affectation provoquerait un déclenchement du mécanisme de sécurité du WLangage avec le retour suivant :

Un élément de type 'chaîne ANSI/UNICODE' ne peut pas être converti vers le type 'objet source de données'.

 

 

 

< Retour

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