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

HyperFileSQL Discussion :

Import export par HDécritConnexion() et Proxy


Sujet :

HyperFileSQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut Import export par HDécritConnexion() et Proxy
    Bonjour chers amis développeurs, j'ai vraiment besoin de vos conseils

    J'ai un programme windev qui se connecte à une base HFSQL C/S pour en importer des données et y exporter.
    Ce programme utilise les fonctions suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Décrire la nouvelle connexion
    descriptionConnexion=HDécritConnexion("MaConnexion", "admin","","XXX.XXX.XXX.XXX :4900", "ma_Base", hAccèsHFClientServeur, hOLectureEcriture, "")
     
    // fermeture du fichier de données en local (HFSQL)
    HFerme("MonFichier")
     
     
    // Ouvrir la nouvelle connexion
    OuvertureConnexion=HOuvreConnexion("MaConnexion")
    Le problème est que mon client est une filiale d'une multinationale qui a un service informatique centralisé et qui n'est pas flexible du tout . Mon client utilise donc le réseau ultra sécurisé de la centrale.
    Les fonctions listées ci dessus (qui marchent parfaitement dans un réseau neutre) n'arrivent pas à atteindre un serveur . La solutions donnée par mon client pour atteindre notre serveur externe est que nous utilisions un proxy qui a une adresse et un numéro de port.

    Nous avons donc éssayé d'utiliser la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //Proxy("fr-proxy01.XXX.Intra",NumeroPort)
    avant la fonction HDecritConnexion mais sans succès.

    Nous avons également essayé avec la syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Proxy(NetAdresseIP(),NumeroPort)
    mais sans succès non plus.

    Avez vous une idée de l'utilisation de cette fonction ou d'une façon de contourner le problème.


    Aperçu des traitements effectués :
    ...............
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    //###########  Connexion aux fichiers HFSQL C/S du site web de restitution ###
    descriptionConnexion, OuvertureConnexion,bChangementConnexion, bOuvertureAnalyse, bFermetureConnexion, bOuvertureFichierDistant sont des booléens
     
     
    // Décrire la nouvelle connexion
    descriptionConnexion=HDécritConnexion("MaConnexion", "admin","","XXX.XXX.XXX.XXX :4900", "ma_Base", hAccèsHFClientServeur, hOLectureEcriture, "")
     
    // fermeture du fichier de données en local (HFSQL)
    HFerme("MonFichier")
     
     
    // Ouvrir la nouvelle connexion
    OuvertureConnexion=HOuvreConnexion("MaConnexion")
     
    // Indiquer que le fichier utilise la nouvelle connexion
    bChangementConnexion=HChangeConnexion("MonFichier", "MaConnexion")
     
    // Ouverture du fichier avec la nouvelle connexion en mode lecture et écriture
    bOuvertureFichierDistant= HOuvre("MonFichier","",hOLectureEcriture)
     
    SI descriptionConnexion ALORS
    //	Info("La description de connexion réseau a été transmise correctement vers le serveur")
    SINON 
    	gbExportDeDonnéesEffectué=Faux
    	Erreur("La description de connexion réseau n'a pas été transmise correctement vers le serveur")
    FIN
     
    SI OuvertureConnexion ALORS
    //	Info("L'ouverture de connexion réseau a été effectuée correctement dans le serveur")
    SINON 
    	gbExportDeDonnéesEffectué=Faux
    	Erreur("L'ouverture de connexion réseau n'a pas été effectuée correctement dans le serveur")
    FIN
     
    SI bChangementConnexion ALORS
    //	Info("Redirection des requêtes du système vers la base de donnée du réseau distant effectuée avec succès ")
    SINON 
    	gbExportDeDonnéesEffectué=Faux
    	Erreur("Redirection des requêtes du système vers la base de donnée du réseau distant non  effectuée avec succès")
    FIN
    //###### TRAITEMENTS ET REQUETES SUR LE FICHIER DE DONNEES #########
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    bFermetureConnexion=HFermeConnexion("MaConnexion")
     
    SI bFermetureConnexion ALORS
    //	Info("Fermeture de la connexion effectuée avec succès, retour à la connexion locale de base de données")
    SINON 
    	Erreur("Fermeture de la connexion et le  retour à la connexion locale de base de données ne se sont pas terminés correctement")
    FIN
     
    //################################################        Fin de la connexion       ###################################
     
    //Revenir au niveau du fichier de données de la base de données locale
    HChangeConnexion("MonFichier","")
     
    //Ne considérer que l'export s'est bien effectué que si bExportEffectuéAvecSuccès=vrai et descriptionConnexion=vrai et OuvertureConnexion=vrai et bChangementConnexion=vrai et bFermetureConnexion=vrai
    SI bExportEffectuéAvecSuccès=Vrai ET descriptionConnexion=Vrai ET OuvertureConnexion=Vrai ET bChangementConnexion=Vrai ET bFermetureConnexion=Vrai ALORS
    //	Info("L'Export s'est à priori bien effectué, marquer les entrées du fichier de données de la base locale comme s'étant déjà exportés ")

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Sachant que je n'ai pas touché les proxys depuis bien longtemps, voici juste quelques pistes en mémoire.

    Il y a deux types de proxy (dans ton cas, je n'ai aucune idée du proxy qui est à ta disposition) :

    - Les proxy de type http qui n'ont pour but que de rediriger un flux de type http. La fonction proxy de windev permet de déclarer un proxy de type http justement.

    - Les proxy socks qui permettent de rediriger tout types de connection tcp et udp en socks v5 il me semble.

    La connexion à une base HF C/S ne passe pas par une connexion http mais par une connexion TCP directe au port 4900 du server. La fonction "proxy" de windev ne t'es donc, dans ton cas, pas utile et je ne crois pas que windev ai d'options pour établir la connexion au serveur HF par un proxy.

    A priori, il existe (existait) des solutions pour permettre à une application de passer par un proxy socks sans qu'elle n'ai été prévu pour cela au départ, mais je ne suis pas sur du fonctionnement avec windev et ce n'est que la dernière solution à rechercher d'après moi. (a voir dans la doc de windev ou auprès de pcsoft s'il n'y a pas d'autres ports utilisés)

    Le plus simple serait tout de même de te rapprocher de la boite qui gère le réseau et d'expliquer que tu as besoin de te connecter à une base de données sur le port tcp 4900. Il est possible que tes problèmes de connexion actuel ne soient que des problèmes de firewall qui bloque ce port.

    L'autre solution, si tu as la maîtrise du serveur HF C/S c'est de modifier le paramétrage du serveur pour qu'il soit à l'écoute sur un port plus "classique" (80 par exemple), mais ce n'est aussi, d'après moi, pour le moment qu'un piste à étudier en secondaire.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Merci de ta réponse DelphiManiac.

    Nous avons visiblement affaire ici à un Proxy de type http en effet, alors que comme t'as pu les constater, nos fonctions utilisées ne passent pas par du http mais par une connexion TCP directe au port 4900 du server, comme t'as pu le spécifier.

    Je sais modifier le paramétrage du serveur HF C/S pour me mettre sur un autre port de communication, mais est ce que ceci peut résoudre le problème?

  4. #4
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    De passer la communication IP de HF C/S par le port 80 est à tester, mais ne passe pas par le proxy. En général un proxy HTTP à pour fonction d'analyser le trafic HTTP et de filtrer en fonction des requêtes effectués et vu que ce ne sera pas du HTTP ça sera sûrement bloqué.

    Par contre le trafic sur le port 80 n'est peut être pas bloqué, mais pas sûr que HF C/S n'ouvre pas d'autre port.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Bon, vu que windev ne possède pas les fonctions permettant d'encapsuler les requêtes http, nous allons explorer une piste qui est de faire appel à des experts qui vont monter un Proxy supplémentaire utilisant "squid", qui s'occupera d'encapsuler les requêtes http pour nous avant d'atteindre le Proxy du service informatique du client qui lui pourra sortir et atteindre notre serveur externe.
    Affaire à suivre le 17 Mars

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Je pense que je vois ce que tu me propose Delphimaniac, mais concernant le port 80, il est déjà occupé dans nos serveurs, j'ai vérifié au niveau de IIS. On ne peut donc pas l’empreinter pour configurer notre base de donnée HFSQL.

    Nous avons déjà eu le problème avec un autre client mais, lui ce n'était que le port 4900 qui était condamné. Il ne voulait pas déroger à ses règles de sécurité, il nous avait donc donné plusieurs ports qui était inoccupés chez lui et nous avions donc ainsi pris le port 8060 pour notre base HFSQL chez lui, et là ça marchait nickel pour lui.

  7. #7
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Attendons le 17 mars alors, essaye de tenir au courant la communauté, ça peut toujours servir un jour ou l'autre
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  8. #8
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Bonjour,

    Désolé de déterrer un sujet vieux de 4 ans avant d'ouvrir un nouveau post, mais que s'est il passé le 17 mars?

    J'essaie actuellement de faire une requête http via un proxy de type socks et cela ne fonctionne pas en WD18.

    Y a t-il eu depuis une solution d'utiliser un proxy socks via la fonction proxy() de WD ?

    Merci d'avance!

Discussions similaires

  1. Important à lire par tous SVP
    Par Community Management dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2010, 22h54
  2. Conversion par import export 8i->10g NLS différents
    Par laurentAM dans le forum Administration
    Réponses: 2
    Dernier message: 30/04/2009, 10h18
  3. Import/export Dynamique
    Par Younes dans le forum VBA Access
    Réponses: 8
    Dernier message: 30/01/2009, 16h46
  4. Précisions sur Import/export
    Par electro dans le forum Import/Export
    Réponses: 9
    Dernier message: 15/10/2004, 13h34
  5. [Newbie] Import / Export Eclipse
    Par Latyr_dev dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/07/2004, 12h22

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