Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Administration
Administration Forum d'entraide sur les outils d'administration natifs pour Firebird: gbak, gfix, etc.
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 09/08/2004, 11h18   #1
Invité de passage
 
Inscription : août 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 6
Points : 0
Points : 0
Par défaut passage de paramètres à un fichier SQL

Bonjour,

J'aimerais exécuter une série d'instructions SQL stockées dans mon_fichier.sql. Pour ce faire, la ligne d'instruction suivante est connue...

/opt/firebird/bin/isql -i mon_fichier.sql -u mon_user -p mon_pwd localhost:/opt/firebird/data/ma_db.gdb

Mais si en plus je veux passer des arguments (des entiers) au fichier mon_fichier.sql, quelle est la nomenclature d'usage?

PS: Je n'arrive pas à accéder au lien vers le tutorial PDF en français
(ftp://212.73.230.16/borland/doc/interBase/InterBase_Guide_FR_pdf.zip)
Je n'ai toujours pas réussi à trouver une doc exhaustive de firebird, si vous en connaissez faites signe...merci!

Phil.
philfont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2004, 11h46   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
D'après mes souvenirs on ne peux pas avec ISQL passer un fichier SQL qui comporte des variables. Il faut que les instructions SQL soit completes (non paramétrées).

Il existe d'autres interpréteur de script SQL mais je ne saurait pas vous dire s'ils acceptent ce genre de paramétrage et encore moins si vous pourrez en trouver pour votre OS qu'il est de type Unix/linux d'après votre ligne de commande.

Pour ce qui est des docs exhaustives pour Fb il n'y en a pas, il faut se baser sur les doc officielles d'interbase 6 disponnibles en PDF en anglais et sur les différents articles diffusés sur Internet pour connaitre les différences (les ajouts) pour Firebird 1.5 (si vous parles de Fb1.0 la doc d'ib 6.0 est exhaustive...)

La doc en francais qui vous avez essayé de télécharger est une vielle doc d'IB5 je crois.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2004, 13h38   #3
Invité de passage
 
Inscription : août 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 6
Points : 0
Points : 0
ok, merci.

Est-il alors possible de passer une commande SQL directement dans la ligne de isql? Un truc qui ressemblerait à :

/opt/firebird/bin/isql -c "select FIELD from TABLE where FIELD2=VALUE" -u mon_user -p min_pwd localhost:/opt/firebird/data/ma_db.gdb
philfont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2004, 09h25   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Non je ne crois pas. Mais rien ne vous empèche de créer votre fichier à la vollée.

Sous unix il suffit de rediriger le flux console vers un fichier pour que celui ci soit créé. Il en est de même sous DOS lorsque l'on fait un echo "select....." >>Monfichier.txt
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2004, 10h47   #5
Invité de passage
 
Inscription : août 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 6
Points : 0
Points : 0
ok très bonne idée je n'y avais pas pensé.

Merci,

Phil.
philfont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2004, 15h01   #6
Invité de passage
 
Inscription : août 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 6
Points : 0
Points : 0
Voilà pour la petite histoire la manière dont je m'en suis sorti pour générer une série d'instructions SQL similaires mais paramétrées différemment.
1) Une boucle génère les paramètres et (toujours dans la boucle) insertion de la commande SQL -avec les paramètres calculés- dans un fichier DBadapt.sql
2)Une fois sorti de la boucle, exécution du fichier SQL pour modifier la DB.

Le code suit, je ne rentre pas dans les détails (tte question est la bienvenue).

Voilà, un petit pas pour la communauté des programmeurs, mais un grand pour moi!

Tchao,

Phil.


/////////////////////////////////////////////////////////////////////////////////
#!/bin/sh


rm -f DBadapt.sql
for file in proposition*.png ; do
C=-1;
N=`echo $file | perl -pi -e 's/^proposition(\d+)_.*\.png$/$1/'`

if [ $N -ne $C ]; then
borne=$((N/135))
theme=$(((N%135)/27))
niveau=$((((N%135)%27)/9))
numero=$(((((N%135)%27)%9)/3))
prop=$(((((N%135)%27)%9)%3))
C=$N;
fi
echo "update questions set IMGPROP$prop='/img/Thoiry/proposition$N' where borne=$borne and theme=$theme and niveau=$niveau and numero=$numero;" >>DBadapt.sql

done

/opt/firebird/bin/isql -i DBadapt.sql -u my_user -p my_pwd localhost:/opt/firebird/data/my_db.gdb


//////////////////////////////////////////////////////////////////////////////////
philfont 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 15h55.


 
 
 
 
Partenaires

Hébergement Web