|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2004 Messages : 6 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
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. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : août 2004 Messages : 6 ![]() |
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 |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
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 |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : août 2004 Messages : 6 ![]() |
ok très bonne idée je n'y avais pas pensé.
Merci, Phil. |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : août 2004 Messages : 6 ![]() |
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 ////////////////////////////////////////////////////////////////////////////////// |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com