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

WebDev Discussion :

table HFSQL CASSIC sur le serveur en conflit avec plusieurs utilisateurs [WB23]


Sujet :

WebDev

  1. #1
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut table HFSQL CASSIC sur le serveur en conflit avec plusieurs utilisateurs
    Bonjour tout le monde :

    Pour les besoins de mon projet, j'ai besoin d'une table HFSQL CLASSIC pour stocker temporairement des infos afin d'établir un graphique.
    Donc forcement, elle ne fait pas parti du serveur HFSQL.
    Celle-ci est remplie selon des critères spécifié par l'utilisateur.

    J'ai remarqué que celle-ci a été déployé par défaut dans le répertoire C:\inetpub\ftproot\FTP_WebDev\Donnees\MonSite du serveur WEB.

    Mais visiblement l'accès est refusé (j'arrive pas à avoir plus d'info sur l'erreur générée - je sais pas encore comment faire un log d'erreur ou de trace avec WebDev)

    Bref, du coup j'ai changé le répertoire de cette table avec un hChangeRep() dans le code d’initialisation du projet vers le répertoire c:\temp.
    Là ça marche nickel !!
    Le .FIC et .NDX a été créé dans ce répertoire sur le serveur.

    MAIS :

    Si 2 utilisateurs sont connectés au site, ces 2 utilisateurs vont se partager la même table !!!!
    Et bonjour le bordel dans les résultats !

    Alors comment pouvoir créer une table temporaire associé à chaque utilisateur spécifique ???

    J'ai pensé à utiliser une table locale dans le PC du client, mais je ne sais pas comment le préciser dans le HChangeRep...
    Le répertoire spécifié est toujours sur le serveur...
    Et pour les utilisateur sous IOS, cela ne va pas marcher !!

    Merci pour vos conseils et astuces !!

    Cordialement,

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    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 : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Bonjour,

    Pourquoi ne pas rajouter une colonne d'identifiant dans le fichier, de cette manière tu pourrais filtrer les données. Sinon il suffit de créer un répertoire par client connecté e créer un fichier pour chaque client
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  3. #3
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    merci pour ta réponse,

    alors pour la colonne supplémentaire, pourquoi pas... ce serait lourd à gérer par contre... enfin je pense...

    pour le répertoire en revanche, ça me plait bien, le truc c’est qu’il faudrait supprimer à la fin de la session le répertoire en question !
    Ou alors à chaque nouvelle connexion du même utilisateur, on écrase les anciens fichiers...

    On peut obtenir un ID de connexion de l’utilisateur sur le serveur. avec WebDev ? (je n’utilise pas de groupeware, et j’aimerai éviter les loggin/password)

    Le top serait de faire sur la fermeture du navigateur... je sais pas si y a un évènement...
    Et si le temps d’inactivité est atteint... c’est côté serveur ça... pas sûr que ce soit possible...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    Tu vides ton fichier de travail avant de le remplir à nouveau.

    et pour "On peut obtenir un ID de connexion de l’utilisateur sur le serveur." ben si tu as a une table utilisateur c'est l'id de l'utilisateur

    tu peux utiliser une table HFSQL ou classique en introduisant l'id utilisateur et en filtrant.

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    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 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    une idée à 2 balles. Si l'utilisateur est identifié, tu passes par un alias. Un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FichierTempUser est une Source de Données <description=FichierTemp>
    SI HAlias(FichierTemp, FichierTempUser ) ALORS
       HChangeNom(FichierTempUser , FichierTemp + NomUserLoggé)
    FIN
    Chaque utilisateur est "propriétaire" de son fichier temp...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  6. #6
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    Les idées me plaisent...
    J’ai pas de gestion d’utilisateur car pas nécessaire pour cette application.

    Mais je peux très bien prendre comme ID d’utilisateur son adresse IP ?! Nan !

    Ensuite est ce je crée des tables Classic par user ou une table C/S en incluant l’ID ... je sais pas encore, vais faire des essais

    Je vous tiens au courant,

    Merci à vous !!

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    Note que si 2 utilisateurs viennent du même réseau local l'adresse IP sera la même.
    idem si l ou utilise un VPN.

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    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 : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Je n'utilise pas webdev, mais n'y a t-il pas une variable de session sur laquelle tu peux te baser pour avoir un id unique ?
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  9. #9
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    je parlais de l’IP locale du device de l’utilisateur...

    ça marchera pas ?
    elle est bien unique celle-là ?

  10. #10
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    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 : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Ton appli est utilisée en intranet ?
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  11. #11
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    oui oui tout à fait.
    peut -être une jour en extranet...

  12. #12
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    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 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Rien ne t'empêche de rajouter un timestamp à l'ip pour le nom de l'alias
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  13. #13
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    Alors voilà ce que j'ai fais, ça marche super bien :

    Dans le code d'initialisation du projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //---------------------------------------------------------
    //Création Dossier temporaire sur le serveur
    //--------------------------------------------------------
     
    gsMonDossier est une chaîne = "c:\temp\"+ExeDonnePID()+"\"
     
    SI EnModeTest() = Faux ALORS	
    	fRepCrée(gsMonDossier)	
    	HChangeRep(Graphe_Evolution,gsMonDossier)
    	HCréationSiInexistant(Graphe_Evolution)
    FIN
    Dans le code de fermeture du projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //---------------------------------------------------------
    //Suppression Dossier temporaire
    //--------------------------------------------------------
     
    SI EnModeTest() = Faux ALORS
    	//change le dossier du fichier temporaire, sinon la suppression est impossible
    	HChangeRep(Graphe_Evolution,"")	
    	//supprime le dossier temporaire de la session
    	fRepSupprime(gsMonDossier,frRécursif)
    FIN
    A savoir que le dossier sera supprimé que lors du fin du Timeout d'une session inactive définit dans "Administrateur WebDev".

    Une remarque :

    Si le serveur détecte une nouvelle connexion venant d'une même adresse IP déjà en cours, il supprime directement le session précédente et donc les fichiers temporaires, pour en créer un nouveau.
    Donc si on ouvre plusieurs onglet dans le même navigateur, l'onglet précédent va planter car il ne trouve plus ces fichiers temporaires.

    Ah moins de décocher la case "Une seule connexion par IP recyclée automatiquement" et de définir le nombre de connexions autorisées.
    Mais ça fait vite monter le nombre e connexion sur le serveur (limiter à 10 ...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/03/2017, 11h05
  2. Installation SVN sur un serveur Centos 6 avec des virtualhost
    Par neuropathie dans le forum Subversion
    Réponses: 0
    Dernier message: 12/10/2013, 14h21
  3. Réponses: 1
    Dernier message: 11/09/2008, 10h58
  4. conflits avec plusieurs thread ?
    Par ac/dc dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/04/2007, 20h47

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