Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > Informix
Informix Forum d'entraide Informix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/01/2008, 08h58   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 8
Points : 0
Points : 0
Par défaut traitement des fichiers

Bonjour,

en 4gl, je fais un load de plusieurs fichiers texte dans une table, ca fonctionne trés bien au niveau du load.

par contre si un des 3 fichiers n'est pas présent (et ca peut arrivé), j'ai le droit à un beau message d'erreur. La question est donc :

comment vérifier l'existence d'un fichier en 4gl ???

merci d'avance pour vos reponses.

Stan.
stanley1415 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 08h52   #2
Invité régulier
 
Inscription : août 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 13
Points : 7
Points : 7
salut,

il y a quelque temps, j'avais le meme probleme et j'avais du jouer à macGyver pour résoudre ca.

en 4gl ca fait ceci du coup :
# on fait la verif avec une commande unix et on met la reponse dans un fichier
RUN "[ -f ton_fichier.txt ]; echo $? > le_fileexist"

si c'est 0 le fichier existe, si c'est 1 il existe pas
on créé une table temporaire et on fait un load du fichier le_fileexist dedans
il ne reste plus qu'a récupérer la réponse en 4gl avec un simple select

bon j'avais prévenu, c'est vraiment du macGyver mais ca marche et je n'ai pas trouvé d'autre solution
si quelqu'un en a une autre de solution je suis preneur également

j'espére que ca te conviendra
@+
tucsoufle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 22h07   #3
Membre habitué
 
Inscription : novembre 2007
Messages : 103
Détails du profil
Informations personnelles :
Âge : 64
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 103
Points : 109
Points : 109
Par défaut Load en batch

Bonjour,

Je ne pratique pas I4GL mais en ISQL, je serais passé par un shell et comme tucsoufle propose de toute façon d'y avoir recours, je propose le shell suivant à adapter en I4GL :

Code :
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# import
 
#           Paramètres
# LOGNAME = Logname
 
clear
 
echo "+IMPORT-----------------------------------------------------------------+"
echo "|                                                                       |"
echo "|Importation nom_fichier_1.txt, nom_fichier_2.txt et nom_fichier_3.txt  |"
echo "|dans la table table_x                                                  |"
echo "|-----------------------------------------------------------------------|"
echo "|TRAITEMENT :   [Retour]=OK, [Del/Suppr]=Abandon                        |"
echo "+-----------------------------------------------------------------------+"
echo ""
 
cd ../shell
 
IF test -f ${LOGNAME}.out
   then rm ${LOGNAME}.out
fi
 
SMSO=`tput smso`
RMSO=`tput rmso`
 
# TRAITEMENT
  tput cup 5 14
  echo $SMSO" "$RMSO
  tput cup 5 14
  READ REPONSE
  tput cup 5 14
  echo " "
 
tput cup 7 0
echo " Traitement en cours... \c"
 
IF test -f  nom_fichier_1.txt
   then cat nom_fichier_1.txt >> ${LOGNAME}.out
fi
 
IF test –f  nom_fichier_2.txt
   then cat nom_fichier_2.txt >> ${LOGNAME}.out
fi
 
IF test -f  nom_fichier_3.txt
   then cat nom_fichier_3.txt >> ${LOGNAME}.out
fi
 
 
cp ../sql/import.sed ${LOGNAME}.sql
 
ed - "${LOGNAME}.sql" << !
,s/LOGNAME/$LOGNAME/g
w
q
!
 
IF test -f ${LOGNAME}.out
then IF [ "$DBLANG" = "" ]
     then isql -s MaBase -qcre ${LOGNAME} > /dev/NULL
     else isql -s MaBase -lceq ${LOGNAME} > /dev/NULL
     fi
fi
 
echo " TERMINE !"
 
# {
# import.sed
# }
#
# load from LOGNAME.out insert into table_x;
Ca évite quand même d'avoir à créer une table temporaire.

Quant-à moi, même si c'est modeste et sous Word, ça fait du bien de retaper du shell.

Un retraité qui s'enquiquine...
IFA2377 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h53.


 
 
 
 
Partenaires

Hébergement Web