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 28/01/2008, 23h45   #1
Invité de passage
 
Inscription : mai 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 35
Points : 2
Points : 2
Par défaut impression du resultat d'une requete

Bonjour,

J ai crée un script qui fait appel à dbaccess et exécute une requête, mais je voudrais y ajouter une ligne qui me permet d’imprimer le résultat de cette requête(je crois qu on appelle ça piper)
dans dbaccess lorsque j’écris la requête (select * from agent) et je veux imprimer le résultat je fais run ensuite output ensuite to pipe et j’écris: lp -dlpr et l impression se fait automatiquement.

mais je ne sais pas comment faire ça dans un script

Merci infiniment
ghizou771 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 09h48   #2
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 496
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 496
Points : 9 677
Points : 9 677
Bonjour,

Dans un script, l'appel à dbacess peut se faire de la façon suivante :

Code :
1
2
 
echo "select * from .... where ...." | dbaccess ma_base_de_donnee
Donc, ce qu'il faut faire, c'est rediriger la sortie de cette comande vers un fichier (très) temporaire, puis de l'imprimer :

Code :
1
2
3
4
 
echo "select * ..." | dbacess ma_base > /tmp/mon_fichier_temporaire.txt 2>&1
 
lp -dlpr /tmp/mon_fichier_temporaire.txt
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 18h00   #3
Invité de passage
 
Inscription : mai 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 35
Points : 2
Points : 2
Par défaut impression du resultat d'une requete

Bonjour,
ca marche pas dans mon cas ou bien je ne sais comment l ecrire. voici la partie de mon script ou je fais appel à la requete

Code :
1
2
3
4
5
6
7
8
 
isqlrf - -<<! 1>/tmp/err_vf 2>>/tmp/err_vf 
DATABASE conge;
SELECT service,nom,prenom,disponible
FROM sit_conge
WHERE service=1
ORDER BY nom;
close DATABASE;

Merci infiniment
ghizou771 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 11h29   #4
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 496
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 496
Points : 9 677
Points : 9 677
Bonjour,

Je ne sais pas comment utiliser isqlrf.

En revanche, le code suivant devrait fonctionner (le fait qu'il soit en bash est uniquement à cause du if, qui sert à vérifier que le fichier est présent ou non) :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
#!/bin/bash
 
IF [ -f /tmp/select_conges.txt ]
  echo "Fichier /tmp/select_conges.txt deja existant. Effacez-le avant de recommencer"
  exit 1;
fi
 
echo "select service,nom,prenom,disponible from sit_conge where service=1 order by nom;" | dbaccess conge > /tmp/select_conges.txt
 
lp -dlpr /tmp/select_conges.txt
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 15h56   #5
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 12
Points : 13
Points : 13
Bonjour,
A mon avis les tirets sont colles et il manque le dernier point d'exclamation :

Code :
1
2
3
4
5
6
7
8
isqlrf - -<<! 1>/tmp/err_vf 2>>/tmp/err_vf 
DATABASE conge;
SELECT service,nom,prenom,disponible
FROM sit_conge
WHERE service=1
ORDER BY nom;
close DATABASE;
!
et on doit pouvoir ouvrir la base avec isqlrf c'est a dire :

Code :
1
2
3
4
5
6
isqlrf  conge<<! 1>/tmp/err_vf 2>>/tmp/err_vf 
SELECT service,nom,prenom,disponible
FROM sit_conge
WHERE service=1
ORDER BY nom;
!
ce qui evite d'ouvrir et fermer la base.
crocus 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 12h52.


 
 
 
 
Partenaires

Hébergement Web