PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
This content has been translated automatically. Click here to view the French version.
  • Présentation
  • Qu'est-ce qu'un contexte HFSQL ?
  • Contexte HFSQL indépendant
  • Transactions et contexte HFSQL indépendant
  • Limitation : Fichiers de données au format 5.5 et Vues au format Hyper File 5.5
  • Limitations : RPC et contexte HFSQL indépendant
  • Limitation : Contexte HFSQL indépendant et utilisation d'un driver ODBC
  • Contextes HFSQL et fenêtres
  • Comment gérer le contexte HFSQL de fenêtre ?
  • Si les contextes HFSQL ne sont pas indépendants pour chaque fenêtre (option non cochée)
  • Si les contextes HFSQL sont indépendants pour chaque fenêtre (option cochée)
  • Contextes HFSQL et états
  • Comment gérer le contexte HFSQL d'état ?
  • Si les contextes HFSQL ne sont pas indépendants pour chaque état
  • Si les contextes HFSQL sont indépendants pour chaque état
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Managing the HFSQL contexts in the windows and in the reports
Présentation
Un contexte HFSQL contient toutes les informations relatives aux données manipulées :
  • Informations sur l'enregistrement en cours : numéro de l'enregistrement, contenu des rubriques, ...
  • Valeurs des fonctions HTrouve, HEnDehors, ...
  • Caractéristiques du filtre en cours.
  • Caractéristiques de la recherche en cours.
  • Caractéristiques du parcours en cours.
  • Nom des fichiers ouverts.
  • Nom et caractéristiques des requêtes (fonctions HExécuteRequêteSQL, HExécuteRequête, SQLExec, SQLExecWDR).
Remarque : Une seule transaction est possible par contexte HFSQL. Remark : From version 19, HFSQL is the new name of HyperFileSQL.
Qu'est-ce qu'un contexte HFSQL ?

Contexte HFSQL indépendant

WINDEV permet de créer des contextes HFSQL indépendants :
Lors de l'ouverture de la fenêtre (ou de l'état), le contexte HFSQL existant est automatiquement "doublé" (une copie du contexte existant est réalisé) : les opérations réalisées dans chacun des contextes seront indépendantes de celles réalisées dans les autres contextes. La gestion du contexte indépendant permet d'obtenir le même résultat que si 2 instances de la même application s'exécutaient en parallèle.
La gestion d'un contexte HFSQL indépendant est recommandée pour les applications MDI et multi-thread.
Le contexte HFSQL indépendant est pris en compte :
  • Lors de la manipulation d'une base de données HFSQL avec des fonctions HFSQL (fonctions commençant par la lettre H).
  • Lors de la manipulation d'une base de données HFSQL avec des fonctions SQL (fonctions commençant par les lettres SQL).
  • Lors de la manipulation d'une base de données quelconque via un driver ODBC, en utilisant les fonctions SQL.
Remarques :
  • Il est impossible d'accéder depuis du code global d'une fenêtre mère MDI à une requête exécutée dans une fenêtre fille qui a un contexte HFSQL indépendant, même si la source de données utilisée est globale au projet.
  • Tous les Connecteurs Natifs gèrent les contextes HFSQL indépendants : la copie de contexte est effectuée et les opérations effectuées seront indépendantes. Cependant, certains Connecteurs Natifs ne gèrent pas le transfert de la position courante au moment de la copie. Il est dans ce cas nécessaire de se repositionner sur l'enregistrement courant après la copie de contexte.

Transactions et contexte HFSQL indépendant

Lors de la copie de contexte, si une transaction est en cours sur le premier contexte, le nouveau contexte n'est pas en transaction. Il faut rappeler la fonction HTransactionDebut pour démarrer une transaction dans le nouveau contexte.

Limitation : Fichiers de données au format 5.5 et Vues au format Hyper File 5.5

  • Les contextes indépendants ne sont pas gérés sur les fichiers Hyper File 5.5.
  • La copie d'un contexte HFSQL (création d'un contexte HFSQL indépendant à partir du contexte existant au moment de la copie) échoue si une vue Hyper File 5.5 (fonction HCréeVue_55 conservée par compatibilité) est présente dans le contexte HFSQL d'origine.

Limitations : RPC et contexte HFSQL indépendant

L'accès à un fichier HFSQL en RPC n'est pas autorisé depuis une fenêtre ou un état avec un contexte indépendant. Il est nécessaire de désactiver l'option "Contexte HFSQL Indépendant".
Pour désactiver cette option :
  • Dans une fenêtre : Dans l'onglet "Détail" de la description de la fenêtre, décochez l'option "Independent HFSQL context".
  • Dans un état : Dans l'onglet "Données" de la description de l'état, décochez l'option "The report execution does not affect the browse operations (independent HFSQL context)".
Dans une application utilisant l'accès distant, si des contextes indépendants doivent être utilisés, il est nécessaire de les programmer avec les fonctions HSauvePosition et HRetourPosition.
Remarque : Il n'est pas possible de copier les contextes en RPC. Il faut utiliser la fonction HOuvreAnalyse ou HConnecteAccèsDistant dans le nouveau contexte pour accéder au RPC.

Limitation : Contexte HFSQL indépendant et utilisation d'un driver ODBC

Attention : la requête sera dupliquée uniquement si la copie du contexte (ouverture de la fenêtre ou de l'état) est réalisée APRES avoir initialisé le parcours du résultat avec la fonction SQLPremier.
Ne pas faire
IF SQLExec("Requête1") THEN
Open(FEN_Résultat)
END
Faire
IF SQLExec("Requête1") THEN
SQLFirst("Requête1")
Open(FEN_Résultat)
END
Contextes HFSQL et fenêtres

Comment gérer le contexte HFSQL de fenêtre ?

Pour gérer ou non le contexte HFSQL indépendant d'une fenêtre :
  1. Affichez la description de la fenêtre.
  2. Affichez l'onglet "Détail".
  3. Cochez ou non l'option "Independent HFSQL context".

Si les contextes HFSQL ne sont pas indépendants pour chaque fenêtre (option non cochée)

A chaque ouverture de fenêtre, le contexte HFSQL est mis à jour en fonction des manipulations réalisées dans la fenêtre.
Toutes les fenêtres travaillent sur le même contexte HFSQL.
Si une même fenêtre est ouverte plusieurs fois en parallèle dans l'application, les contextes HFSQL risquent de se chevaucher et les données manipulées ne correspondront pas aux données souhaitées.

Si les contextes HFSQL sont indépendants pour chaque fenêtre (option cochée)

Le contexte HFSQL en cours est complètement copié à chaque nouvelle ouverture de fenêtre. Il est ainsi possible de faire des opérations différentes (filtres, tris, recherches) sur le même fichier dans des fenêtres ouvertes en parallèles. Chaque fenêtre a son propre contexte. Aucun risque de confusion de données.
Chaque contexte HFSQL étant indépendant, il est possible de gérer les blocages des enregistrements dans chaque contexte. La fermeture d'une fenêtre ayant un contexte indépendant :
  • débloquera automatiquement les enregistrements bloqués par cette fenêtre,
  • fermera le contexte correspondant.
De même, une fonction HFSQL utilisée dans un contexte n'aura d'effet que dans ce contexte. Ainsi si la gestion des mémos est active à l'ouverture des contextes indépendants, il est possible de désactiver cette fonctionnalité dans une fenêtre : la désactivation des mémos sera uniquement réalisée dans le contexte correspondant à la fenêtre.
Contextes HFSQL et états

Comment gérer le contexte HFSQL d'état ?

Pour gérer ou non le contexte HFSQL indépendant d'un état:
  1. Affichez la description de l'état (option "Description de l'état" du menu contextuel de l'état).
  2. Dans l'onglet "Données", cochez ou non l'option "The report execution does not affect the browse operations (independent HFSQL context)".

Si les contextes HFSQL ne sont pas indépendants pour chaque état

A chaque impression d'état, le contexte HFSQL est mis à jour en fonction des manipulations réalisées dans l'état. Toutes les états en cours d'impression utilisent le même contexte HFSQL.
Si plusieurs états parcourent simultanément le même fichier, il est recommandé d'utiliser des contextes HFSQL indépendants.

Si les contextes HFSQL sont indépendants pour chaque état

Le contexte HFSQL en cours est complètement copié à chaque nouvelle impression d'un état. Il est ainsi possible de faire des opérations différentes (filtres, tris, recherches) sur le même fichier dans des états ouverts en parallèle. Chaque état a son propre contexte. Aucun risque de confusion de données.
See also
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment