DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Fonctions HFSQL Client/Serveur
  • Fonctionnement de la fonction HCopieFichier
  • Conditions d'utilisation
  • Noms de fichiers de données et de répertoires sur le serveur
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Effectue une copie d'un fichier de données HFSQL (fichiers .fic, .ndx, .ftx, .sdx et .mmo s'ils existent) :
  • du serveur HFSQL sur le serveur (pour faire une sauvegarde par exemple).
  • du serveur HFSQL sur le client (pour faire une sauvegarde en local par exemple).
  • du client sur le serveur HFSQL (pour mettre à jour les fichiers de données par exemple).
  • d'un serveur HFSQL vers un autre serveur HFSQL.
// Copie des fichiers de données du serveur vers le serveur
// avec renommage et changement de répertoire
HCopieFichier(MaConnexion, ".\sauvegarde\fichierclient_sov.fic", MaConnexion, ".\fichierclient.fic")
// Copie des fichiers de données du poste serveur vers le poste client
HCopieFichier("", "C:\Données\Client.fic", MaConnexion, "client.fic")
// Copie des fichiers de données du poste client vers le poste serveur
HCopieFichier(MaConnexion, "client.fic", "", "C:\Données\Client.fic")
// Copie le(les) fichiers de données d'un serveur vers un autre serveur
HCopieFichier("CNX", "client.fic", "CNX2", "rep\client.fic", hSansIndex, JAUGE_MaJauge)
// Copie le fichier de données CLIENT d'un client sur lui-même (sauvegarde)
sMonRepertoireDestination est une chaîne = ComplèteRep(fRepExe()) + "RepertoireTest\"
SI PAS fRépertoireExiste(sMonRepertoireDestination) ALORS fRepCrée(sMonRepertoireDestination)
HCopieFichier("", sMonRepertoireDestination + "CLIENT.FIC", "", ...
ComplèteRep(fRepExe()) + "CLIENT.FIC", hCopieIndex)
Android
// Exemple d'utilisation de la fonction HCopieFichier sous Android
// (du serveur HFSQL C/S sur l'appareil Android)
ConnexionHFCS est une Connexion

// Paramètres de la connexion
ConnexionHFCS.Provider = hAccèsHFClientServeur
ConnexionHFCS.Utilisateur = "admin"
ConnexionHFCS.MotDePasse = ""
ConnexionHFCS.Serveur = "192.168.40.26"
ConnexionHFCS.BaseDeDonnées = "mabase"

scheminBDD est une chaîne = SysRepCarteStockage() + [fSep] + ProjetInfo(piNomProjet)

SI PAS HCopieFichier("", scheminBDD + [fSep] + "copie/client.fic", ...
ConnexionHFCS, CLIENT.Nom + ".fic") ALORS
Erreur(HErreurInfo(hErrComplet))
FIN
Syntaxe
<Résultat> = HCopieFichier(<Connexion destination> , <Fichier de données destination> , <Connexion source> , <Fichier de données source> [, <Mode de copie> [, <Champ Jauge> [, <Mot de passe>]]])
<Résultat> : Booléen
  • Vrai si le fichier de données a été copié,
  • Faux en cas d'erreur. La fonction HErreur permet d'identifier l'erreur.
<Connexion destination> : Chaîne de caractères ou variable de type Connexion
Connexion dans laquelle le fichier de données doit être copié. Cette connexion correspond :
  • soit au nom de la connexion définie sous l'éditeur d'analyses ou grâce aux fonctions HDécritConnexion ou HOuvreConnexion.
  • soit au nom d'une variable de type Connexion.
  • soit au DNS d'un cluster HFSQL ou au noeud d'un cluster HFSQL (cas d'une copie vers un cluster HFSQL).
Si ce paramètre correspond à une chaîne vide, la destination sera le poste local.
<Fichier de données destination> : Chaîne de caractères
Nom et chemin du fichier de données destination. Si ce chemin et ce fichier de données n'existent pas sur le serveur, ils seront automatiquement créés.
Si le fichier de données destination est sur le serveur, le chemin est relatif à la base de données.
Attention : l'extension du fichier '.fic' doit être spécifiée.
<Connexion source> : Chaîne de caractères ou variable de type Connexion
Connexion à partir de laquelle le fichier de données doit être copié. Cette connexion correspond :
<Fichier de données source> : Chaîne de caractères
Nom et chemin du fichier de données source (à copier). Si le fichier de données source est sur le serveur, le chemin est relatif à la base de données.
Attention :
  • l'extension du fichier '.fic' doit être spécifiée.
  • le fichier '.mmo' s'il existe sera automatiquement copié.
<Mode de copie> : Constante optionnelle de type Entier
Mode de copie utilisée :
hCopieIndexLe ou les index du fichier de données sont copiés (fichier NDX, fichier SDX et fichier FTX s'ils existent).
hCopieSiInexistantCopie le fichier de données uniquement s'il n'existe pas à l'emplacement indiqué sur le poste destination.
hCréeIndexLe ou les index du fichier de données ne sont pas copiés (fichier NDX, fichier SDX et fichier FTX s'ils existent). Ils sont automatiquement re-créés sur la destination par ré-indexation.
Si le fichier de données est protégé par mot de passe, le paramètre <Mot de passe> doit être spécifié.
hSansIndexLe ou les index du fichier de données ne sont pas copiés (fichier NDX, fichier SDX et fichier FTX s'ils existent).
<Champ Jauge> : Nom de champ optionnel
Nom du champ Jauge présent dans la fenêtre et permettant de voir la progression de la copie.
<Mot de passe> : Chaîne de caractères optionnelle
Mot de passe du fichier de données (s'il existe). Ce mot de passe est nécessaire si la constante hCréeIndex est utilisée.
Remarques

Fonctionnement de la fonction HCopieFichier

  • Le fichier de données copié est débloqué, ainsi que les enregistrements contenus dans le fichier de données.
  • Si l'index n'existe pas ou si l'index est corrompu, alors l'index n'est pas copié.
  • Pour copier le fichier de données, le mot de passe n'est pas nécessaire. Cependant, le fichier de données copié reste protégé par mot de passe.
  • La copie de fichiers de données vers un serveur défini comme source d'un serveur de réplication SPARE n'est pas possible.
  • Fichier de données en transaction : il est conseillé avant de copier le fichier de données de :

Conditions d'utilisation

  • Il est également possible de copier un fichier de données du poste client vers ce même poste client. Dans ce cas, la fonction est équivalente à la fonction fCopieFichier.
  • Cette fonction permet d'effectuer des copies vers un serveur HFSQL (en mode Client/Serveur). Cette fonction ne peut pas être utilisée avec un serveur externe (Oracle ou autre).
  • Pour toute copie d'un fichier de données HFSQL présent sur un poste local vers le serveur, tous les utilisateurs doivent avoir libéré préalablement ce fichier de données. Aucune connexion au fichier de données ne doit être en cours sinon la copie échouera. Pour éviter toute connexion au fichier de données, il est possible de :
  • Cas des fichiers de données répliqués (réplication entre serveurs) :
    Dans le cas d'un fichier de données répliqué, la fonction HCopieFichier ne doit pas être utilisée pour copier un fichier de données vers le serveur : la copie est impossible. Par contre, il est possible de réaliser une copie d'un fichier de données du serveur vers le poste client.
  • Cas d'un cluster HFSQL
    • Si les fichiers de données à copier utilisent une sécurité renforcée, il est nécessaire de préciser le mot de passe du fichier de données via le paramètre <Mot de passe>. Ce mot de passe est nécessaire notamment lors de la synchronisation des fichiers de données sur les différents noeuds.
    • Pour utiliser la fonction HCopieFichier avec un cluster HFSQL, il est nécessaire que le cluster HFSQL comme l'application cliente utilisent au minimum la version 2024 Update 1.

Noms de fichiers de données et de répertoires sur le serveur

  • Le nom des fichiers de données (fichiers .fic, .ndx, .ftx, .sdx et .mmo s'ils existent) sur le serveur ne doivent pas comporter d'accents.
  • Sur un serveur LINUX, le nom des fichiers de données doit être en minuscules.
Composante : wd300hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
HcopieFichier sous iOS
ATTENTION !

Sous iOs le nom du fichier source pour la copie d'un fichier local vers HFCS DOIT être en minuscule, sinon erreur "impossible de trouver le fichier var/mobile/...."

Sylvain
14 avr. 2019
Copie de sauvegarde interne :
Attention, lorsque l'on désire effectuer une copie de sauvegarde (ou archivage) d'une table, il faut mentionner l'extension ".fic" dans le nom de votre table !

Le serveur HF/SQL ne fonctionne pas avec la notion de tables, mais bien avec des fichiers. Même si ces derniers sont déclarés dans votre analyse, la fonction HCopieFichier ne reconnaitra pas vos tables (ou fichiers)

Ex: archivage de mon table (fichier) fournisseur
Syntaxe correcte :
HCopieFichier(maconnexionHFSQL,".\Fournisseurs.fic",maconnexionHFSQL,".\HFournisseurs.fic")
Syntaxe fausse :
HCopieFichier(maconnexionHFSQL,Fournisseurs,maconnexionHFSQL,HFournisseurs)
Laurent RICHELLE
20 aoû. 2017

Dernière modification : 28/05/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale