IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

[WD24] Gestion de plusieurs base HFSQL simultanement en mode client serveur


Sujet :

WinDev

  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 41
    Points : 529
    Points
    529
    Par défaut [WD24] Gestion de plusieurs base HFSQL simultanement en mode client serveur
    Bonjour,

    Je suis en train de développer un logiciel de qui devras être capable de gérer des données de plusieurs sociétés en mode client/serveur avec l'utilisation de base de données PCSoft HFSQL.
    Au début je m’était dit qu'il était peut être plus simple de ne créer qu'une seule base de donnée pour toute les sociétés et simplement d'ajouter un champ IDSociete dans toutes les tables. J'avoue encore hésiter... d'autant plus que l'analyse sera exactement la même quelque soit la société.
    Mais je préfère séparer les données de sociétés différentes et je me dit que créer une base de donnée séparé pour chaque société ce n'est pas mal non plus.
    Dans ce cas je me dit qu'il me faudrait une base de donnée maitre avec une seule table ListeSociete qui contiendrait juste un IDSociete, le nom de la societe et le nom de la base de donnée HFSQL sur le serveur.
    Puis une multitude de base de donnée ( autant qu'il y a de société ), servant au fonctionnement du logiciel et stockant chacune les données commerciales d'une seul société .
    Je voudrais faire une chose du genre : l'utilisateur lambda se connecte toujours sur la base de donnée maitre en premier pour avoir la liste de toute les société. En sélectionne une. Puis le logiciel se connecte sur la base de donnée correspondant à la société choisie.
    -Est ce que c'est possible, souhaitable, pertinent ?
    -Pourriez vous me donner des détails sur comment procéder le plus simplement possible ?

    Pour information il n'y aura qu'un seul serveur HFSQL sur un seul ordinateur serveur. Les clients pourront être évidemment sur d'autres ordinateurs pc standart.

    Pour information je suis actuellement en Windev 24.

    Cordialement à tous.

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 830
    Points : 5 326
    Points
    5 326
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Il suffit de créer un répertoire par société, HChangeRep ou HSubstRep se charge de choisir le bon répertoire. Un HCréationSiInexistant est fortement conseillé.
    De mémoire, si le répertoire n'existe pas, HChangeRep le crée.
    Tu peux même aller plus loin en créant des sous-répertoires par année.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    Bonjour,

    Je suis un peu dans la même réflexion que vous.

    Mais je crois que l'on peut avoir des sous-répertoire dans le répertoire de la base de données C/S donc il faut en créer un par dossier.
    Et utiliser hChangeRep(), voir l'aide.
    Je n'ai pas encore testé mais tenez nous au courant pour voir les syntaxes exactes.
    Notamment au niveau du hOuvreConnexion().

    Si vous avez un 'niveau' de plus alors il faut créer une autre base avec un autre nom et la même analyse (ou pas d'ailleurs).
    Exemple : des sociétés avec plusieurs établissement, une base par société et des sous-répertoires pour les établissements.

    Un truc à vérifier : la gestion des droits sur le serveur se fait au niveau base (donc sociétés), je pense qu'il faudra gérer les droits au niveau établissement soit même.

    Actuellement en version HF classique j'ai une structure du genre :

    \NomAppli\fic\Etab1 où NomAppli peut-être assimilé à une société et Etab1,2,.. aux noms des établissements.

    De plus j'ai un \NomApplic\fic\fic000 qui contient des fichiers de paramètres communs aux établissements genre codes postaux, plan comptable de base, utilisateurs, droits sur les établissements, ...


    D'ailleurs je ne sais pas comment pratiquent les hébergeurs de bases HFSQL C/S ? Je ne pense pas qu'ils lancent autant de serveur que de client hébergés ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 976
    Points : 2 037
    Points
    2 037
    Par défaut
    Bonjour,

    Bonjour,

    Je suis en train de développer un logiciel de qui devras être capable de gérer des données de plusieurs sociétés en mode client/serveur avec l'utilisation de base de données PCSoft HFSQL.
    Au début je m’était dit qu'il était peut être plus simple de ne créer qu'une seule base de donnée pour toute les sociétés et simplement d'ajouter un champ IDSociete dans toutes les tables. J'avoue encore hésiter... d'autant plus que l'analyse sera exactement la même quelque soit la société.
    Mais je préfère séparer les données de sociétés différentes et je me dit que créer une base de donnée séparé pour chaque société ce n'est pas mal non plus.
    Dans ce cas je me dit qu'il me faudrait une base de donnée maitre avec une seule table ListeSociete qui contiendrait juste un IDSociete, le nom de la societe et le nom de la base de donnée HFSQL sur le serveur.
    Puis une multitude de base de donnée ( autant qu'il y a de société ), servant au fonctionnement du logiciel et stockant chacune les données commerciales d'une seul société .
    Je voudrais faire une chose du genre : l'utilisateur lambda se connecte toujours sur la base de donnée maitre en premier pour avoir la liste de toute les société. En sélectionne une. Puis le logiciel se connecte sur la base de donnée correspondant à la société choisie.
    -Est ce que c'est possible, souhaitable, pertinent ?
    -Pourriez vous me donner des détails sur comment procéder le plus simplement possible ?

    Pour information il n'y aura qu'un seul serveur HFSQL sur un seul ordinateur serveur. Les clients pourront être évidemment sur d'autres ordinateurs pc standart.

    Pour information je suis actuellement en Windev 24.

    Cordialement à tous.
    Perso il me semble plus pertinent de rajouter un identifiant pour la société dans les tables concernées si le but est d'avoir une entité mère qui permet de visualiser les données des entités filles.

    Créer une BDD par entité n'est utile que si vous souhaitez avoir des sociétés toutes indépendantes les unes des autres et sans aucun lien entre elles.

    La grande question à se poser est plutôt HFSQL est-elle capable de gérer le volume de données et l'augmentation potentielle du volume dans le futur (perso j'émets un gros doute).

    De plus si demain vous souhaitez basculer sur autre chose que HFSQL (je vous le conseille très fortement...), ce sera bien plus simple.

  5. #5
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 41
    Points : 529
    Points
    529
    Par défaut
    Citation Envoyé par philouZ Voir le message
    Créer une BDD par entité n'est utile que si vous souhaitez avoir des sociétés toutes indépendantes les unes des autres et sans aucun lien entre elles.

    La grande question à se poser est plutôt HFSQL est-elle capable de gérer le volume de données et l'augmentation potentielle du volume dans le futur (perso j'émets un gros doute).
    Oui : pour information les sociétés seront strictement indépendantes et n'auront strictement aucun lien entre elles.
    Pour ce qui est du potentiel du serveur HFSQL en ce qui concerne la volumétrie des données : la il faut avouer que en revanche je n'ai aucun doute pour l'avoir déjà vue tourner avec des volumes assez significatif que je n’atteindrais jamais chez des collègues développeurs ( et sur des disques mécaniques avec des ordinateurs d'il y a 10 ans ... ). Mon logiciel sera avant tout destinés aux PME et non pas aux grand comptes... HFSQL n'est certainement pas la meilleure des bases de données, mais c'est un choix très correct. De plus a l'heure des disques SSD j'avoue que je ne m'en fait encore moins.

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2023
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2023
    Messages : 64
    Points : 131
    Points
    131
    Par défaut
    Bonjour,
    Cette vidéo pourrait vous intéresser. Création d'une base pour une société avec création dynamique des sous bases pour les différents sites de cette société.
    Elle a été libre longtemps sur Youtube , mais malheureusement, il faut maintenant s'enregistrer pour la visionner.

    << Lien retiré, Lubinfo m'a signalé qu'il fallait payer >>

    Ps : ce n'est pas de la pub, je n'ai aucun lien avec le créateur de la vidéo mais je l'avais trouvé intéressante.
    Cordialement

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    932
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 932
    Points : 1 525
    Points
    1 525
    Par défaut
    Bonsoir.
    Avec le type Connexion il suffit de changer le paramètre :
    MaConnexion..BaseDeDonnées = "Base de données" (Le serveur va créer un répertoire par société)
    Chaque base sera dans le répertoire indiqué.

  8. #8
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 305
    Points : 9 405
    Points
    9 405
    Par défaut
    Bonjour,

    Pour avoir fait ce genre de choses. La réponse est simple : une bdd par société ! C'est d'autant plus vrai que tu dis que toutes les données sont indépendantes.

    De plus, il se peut que l'une d'entre elle exige qu'il ne puis y avoir aucun risque de "mélange" de données.

    Infos en vrac :
    - Tu crées un utilisateur HF par société (qui aura tous les droits mais uniquement sur la bdd de "sa" société)
    - Sur le PC de l'utilisateur, tu mets (dans un ini par ex) les infos de connexion.
    - Si des utilisateurs peuvent avoir accès à plusieurs sociétés, il faudra(it) que tu gères les droits de l'utilisateur "Windows" aux bases (et définir à quelles bases il a accès)
    - Concernant la volumétrie pour HF.... Ca dépend : du "vrai" volume des données. J'ai travaillé sur une base HFCS (avec un serveur pourri) qui avait une table article de 1 200 000 articles (avec des enregistrements de plus de cent rubriques).
    - Il va sans dire que plus costaud, en disques + ram, est le serveur, mieux c'est. Et je parle bien d'un serveur, pas d'un pc windows 10/11 qu'on désigne comme tel.
    - Concernant les autres perf. Si tu "risques" d'avoir des requêtes de la mort avec 5 jointures sur des tables de 10 millions d'enregistrements chacune, ça ne va pas le faire en HF. Dans mon cas, j'avais des requêtes sur une grosse table (articles) et des jointures sur des tables de plusieurs dizaines d'enregistrements et ça marchait très bien.
    - Si tu as prévu de mettre des millions de binaires (mémo), les perf de lecture ne seront pas top non plus en HF.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    Citation Envoyé par DevOcc Voir le message
    Bonjour,
    Cette vidéo pourrait vous intéresser. Création d'une base pour une société avec création dynamique des sous bases pour les différents sites de cette société.
    Elle a été libre longtemps sur Youtube , mais malheureusement, il faut maintenant s'enregistrer pour la visionner.

    "https://www.youtube.com/watch?v=86iVifD94K8"

    Ps : ce n'est pas de la pub, je n'ai aucun lien avec le créateur de la vidéo mais je l'avais trouvé intéressante.
    Cordialement
    S'enregistrer ok mais payer un abonnement sans pouvoir voir au moins un extrait ?

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 305
    Points : 9 405
    Points
    9 405
    Par défaut
    @lubinfo,

    Pourquoi n'es tu pas passé sur HFCS ?

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2023
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2023
    Messages : 64
    Points : 131
    Points
    131
    Par défaut
    @ lubinfo
    Ha parce qu'en plus il faut payer.
    Désolé je ne savais pas sinon je ne l'aurai pas proposé, moi je l'ai récupéré quand c'était libre.
    Salutations

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    Citation Envoyé par DevOcc Voir le message
    @ lubinfo
    Ha parce qu'en plus il faut payer.
    Désolé je ne savais pas sinon je ne l'aurai pas proposé, moi je l'ai récupéré quand c'était libre.
    Salutations
    Pouvez-vous nous en donner les grandes lignes et les méthodes employées svp ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    @lubinfo,

    Pourquoi n'es tu pas passé sur HFCS ?
    Ce sont des applications sous ... windev 5.5 que je n'ai jamais migrées faute de budget/temps/volonté/rentabilité, très souvent utilisées en monoposte avec de très petits volumes donc pas d'intérêt de passer en c/s.

  14. #14
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 305
    Points : 9 405
    Points
    9 405
    Par défaut
    Effectivement, je comprends.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    Citation Envoyé par Yusep Voir le message
    Bonsoir.
    Avec le type Connexion il suffit de changer le paramètre :
    MaConnexion..BaseDeDonnées = "Base de données" (Le serveur va créer un répertoire par société)
    Chaque base sera dans le répertoire indiqué.
    Bonjour,

    Je n'ai pas bien compris : c'est au niveau de la description de la connexion que l'on peut spécifier un sous-répertoire ?

    Vous auriez un exemple de la syntaxe complète svp.

  16. #16
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 305
    Points : 9 405
    Points
    9 405
    Par défaut
    Non, il ne faut pas faire ça !!!

    Tu vas créer autant de bases/dossiers que de sociétés (à la racine du serveur). Tout simplement.

    Si vraiment tu as des données communes, tu crées une base/dossier de la même façon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RacineServeurHFCS
      |- Société1
      |- Société2
    ...
      |- Sociétén
      |- Commun
    Tu crées une connexion correspondant à la société et tu utilises hchangeConnexion("*", ConnexionSociété)
    Si tu as des fichiers communs (qui sont donc dans commun, tu crées, en plus, une connexion ConnexionCommun et tu fais des hchangeConnexion(FichierCommun1, ConnexionCommun),...hchangeConnexion(FichierCommunn, ConnexionCommun)

    [EDIT] Astuce : mettre le dossier racine du serveur ailleurs que dans le c;\program data\PcSoft\....

Discussions similaires

  1. [12c] Mettre plusieurs bases de données en mode archivelog
    Par NULL008 dans le forum Administration
    Réponses: 2
    Dernier message: 14/03/2019, 13h32
  2. Réponses: 0
    Dernier message: 07/01/2016, 11h47
  3. [SpringMVC] Gestion de plusieurs base de données
    Par lodjine dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 12/08/2015, 10h06
  4. [Data] gestion de plusieurs base de données en Spring
    Par coco-sup dans le forum Spring
    Réponses: 4
    Dernier message: 23/04/2008, 13h48
  5. Gestion de plusieurs bases de données
    Par M_Torres dans le forum Accès aux données
    Réponses: 2
    Dernier message: 24/02/2007, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo