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

Forms Oracle Discussion :

[FORMS10g] Interprétation des variables globales


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut [FORMS10g] Interprétation des variables globales
    Bonjour et meilleurs voeux pour cette année 2008

    Je soumets à votre savoir infini ce petit casse-tête qui, après acharnement thérapeutique, a eu raison de la mienne.

    Dans mon appli, j'upload un fichier depuis le poste client (windows) sur le serveur d'application hébergeant mes forms (unix). J'ai une fonction qui s'occupe de ça et qui prend en paramètre le fichier local à envoyer ainsi que le chemin du répertoire de destination. Avant l'envoi, je vérifie que mon répertoire distant existe bien et qu'il est possible d'y accéder en écriture.
    Le chemin du répertoire distant est lu dans un fichier ini et stocké dans une variable globale nommée global.repdist.

    Mon problème vient de ma fonction de contrôle dudit répertoire.
    Si je l'appelle en lui passant ma variable globale, il me renvoie une erreur comme quoi ce répertoire n'existe pas ou est innaccessible en écriture.
    Par contre, si je l'appelle en lui passant mon répertoire distant tout de go (ie. en lui passant '/monprojet/fichiers/in/' par exemple), et bien le contrôle est validé et mon upload s'effectue.

    Est-ce que quelqu'un peut m'expliquer ce phénomène et surtout comment le corriger ? J'aimerai bien ne pas avoir à passer mes paramètres de répertoires en dur dans mon code...

    Quelques précisions quand même :
    - mon répertoire distant existe bien et a les bons droits
    - ma variable globale est bien initialisée, j'ai relevé sa valeur jusqu'à mon erreur et elle est correcte.
    - j'ai essayé trim(:global.repdist) au cas où un caractère spécial se soit glissé dans ma variable lors de son initialisation en lisant mon fichier ini
    - tout fonctionne correctement lorsque je lance ma forms depuis forms developer (via oc4j, sur windows)

    Help !

    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Meilleurs voeux à toi également

    1. As-tu vérifier dans ta fonction la valeur de ton paramètre ?
    2. As-tu essayer dans ta fonction d'utiliser directement la globale ?
    3. Peux-tu nous mettre le code que tu utilises ?

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    Salut plaineR,

    Je me sers du code de FileUploader trouvé sur le site d'oracle.
    La fonction dont je me sers pour contrôler le répertoire est la suivante :

    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
    function checkOutputDirectory (outputDir in VARCHAR2) return BOOLEAN is
       bRC BOOLEAN := TRUE;
       hDirectoryObj ORA_JAVA.JOBJECT;
      begin 
        if outputDir is NULL then
       	  mError :=  'Destination Directory must be specified';
       	  bRC := FALSE;
        end if;
        hDirectoryObj := JFile.new(outputDir);
        if not JFile.canWrite(hDirectoryObj) then 
      	  mError := outputDir || ' does not exist or is not writable';
      	  bRC := FALSE;
        end if;
        return bRC;
      end;
    Mon anomalie vient de l'appel à canwrite qui renvoie true en passant mon chemin en chaîne de caractère et false en passant mon chemin via la variable globale.
    J'ai affiché la valeur de outputDir juste avant le JFile.new(outputDir) et cette valeur est correcte (en tout cas à l'écran) quelle que soit la façon dont j'appelle la fonction...

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Par défaut
    Ne cherchez plus j'ai trouvé.

    En fait, j'avais transféré mon fichier .ini via Filezilla et j'ai pas fait gaffe au mode qui était en Auto (donc binaire). Ce cochon m'a donc rajouté des ^M à la fin de chacune de mes lignes
    Donc ma variable globale contenait la valeur /projet/fichiers/in/^M ce qui fait logiquement tiquer le contrôle d'existence du répertoire.

    J'ai retransféré mon fichier ini en mode ascii et tout est rentré dans l'ordre.

    Merci plaineR pour ton aide et bonne journée

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

Discussions similaires

  1. [C#] Peut-on avoir des variables globales ?
    Par Seth77 dans le forum C#
    Réponses: 7
    Dernier message: 10/09/2006, 16h07
  2. comment faire des variables globales
    Par user_ensias dans le forum Struts 1
    Réponses: 3
    Dernier message: 07/09/2006, 10h03
  3. portée des variables globales dans un fichier js
    Par crakazoid dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 14/04/2006, 16h49
  4. utilisation des variables global dans tout le projet
    Par EYENGA Joël dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/01/2006, 10h55
  5. De la bonne pratique des variables globales...
    Par say dans le forum C++Builder
    Réponses: 9
    Dernier message: 25/11/2005, 09h47

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