## J'ai une fonction ( note : je debute en python )
qui me permet de recuperer des requetes sql facilement
sans l'installation de driver base de données quelconque
-- Extrait --
cmd = 'sqlplus ....'
handle = os.popen(cmd, 'r', 1)
r=[]
for line in handle:
r.append(line)
handle.close()
os.remove(t_name)
return r
comment puis je faire pour killer ce processus si jamais il se plante
exemple : pas le bon user ou requete incorrecte
L'ideal serait de dire si pas de reponse apres x secondes alors je kill
cela s'exprime comment en python ?
comment puis je faire pour killer ce processus si jamais il se plante exemple : pas le bon user ou requete incorrecte
La commande est censée lever une exception ou retourner un code d'erreur specifique en cas de timeout? Je pense que c'est mieux de tabler la dessus...
Amaury Forgeot d'Arc
Bonjour,
Bonjour,
## J'ai une fonction ( note : je debute en python ) qui me permet de recuperer des requetes sql facilement sans l'installation de driver base de données quelconque -- Extrait -- cmd = 'sqlplus ....' handle = os.popen(cmd, 'r', 1) r=[] for line in handle: r.append(line)
handle.close() os.remove(t_name) return r
comment puis je faire pour killer ce processus si jamais il se plante exemple : pas le bon user ou requete incorrecte
L'ideal serait de dire si pas de reponse apres x secondes alors je kill cela s'exprime comment en python ?
Merci pour vos remarques idées ...
J'ai fait quelques tests (windows XP, python 2.4, Oracle 10.2) et il me semble que le processus sqlplus se termine toujours, en tout cas quand il est lancé par popen il ne se bloque pas pour attendre des commandes. A quel endroit as-tu rencontré des problèmes ?
Pour un contrôle parfait des sous-processus, regarde le module subprocess, même s'il est un peu plus compliqué.
-- Amaury
Bonjour,
Bonjour,
## J'ai une fonction ( note : je debute en python )
qui me permet de recuperer des requetes sql facilement
sans l'installation de driver base de données quelconque
-- Extrait --
cmd = 'sqlplus ....'
handle = os.popen(cmd, 'r', 1)
r=[]
for line in handle:
r.append(line)
handle.close()
os.remove(t_name)
return r
comment puis je faire pour killer ce processus si jamais il se plante
exemple : pas le bon user ou requete incorrecte
L'ideal serait de dire si pas de reponse apres x secondes alors je kill
cela s'exprime comment en python ?
Merci pour vos remarques idées ...
J'ai fait quelques tests (windows XP, python 2.4, Oracle 10.2)
et il me semble que le processus sqlplus se termine toujours, en tout
cas quand il est lancé par popen il ne se bloque pas pour attendre des
commandes.
A quel endroit as-tu rencontré des problèmes ?
Pour un contrôle parfait des sous-processus, regarde le module
subprocess, même s'il est un peu plus compliqué.
## J'ai une fonction ( note : je debute en python ) qui me permet de recuperer des requetes sql facilement sans l'installation de driver base de données quelconque -- Extrait -- cmd = 'sqlplus ....' handle = os.popen(cmd, 'r', 1) r=[] for line in handle: r.append(line)
handle.close() os.remove(t_name) return r
comment puis je faire pour killer ce processus si jamais il se plante exemple : pas le bon user ou requete incorrecte
L'ideal serait de dire si pas de reponse apres x secondes alors je kill cela s'exprime comment en python ?
Merci pour vos remarques idées ...
J'ai fait quelques tests (windows XP, python 2.4, Oracle 10.2) et il me semble que le processus sqlplus se termine toujours, en tout cas quand il est lancé par popen il ne se bloque pas pour attendre des commandes. A quel endroit as-tu rencontré des problèmes ?
Pour un contrôle parfait des sous-processus, regarde le module subprocess, même s'il est un peu plus compliqué.
-- Amaury
chris
J'ai fait quelques tests (windows XP, python 2.4, Oracle 10.2) et il me semble que le processus sqlplus se termine toujours, en tout cas quand il est lancé par popen il ne se bloque pas pour attendre des commandes. A quel endroit as-tu rencontré des problèmes ?
Dans certain cas d'erreurs de requêtes surtout, ou dans certain cas de figures de syntaxes cafouillage entre les " et les '
j'ai fini par y réguler en écrivant un fichier temporaire et en exécutantes sqlplus @fic_temp
mais c'est vrai que cela pourrait être éviter
Pour un contrôle parfait des sous-processus, regarde le module subprocess, même s'il est un peu plus compliqué.
Merci A+ chris
J'ai fait quelques tests (windows XP, python 2.4, Oracle 10.2)
et il me semble que le processus sqlplus se termine toujours, en tout
cas quand il est lancé par popen il ne se bloque pas pour attendre des
commandes.
A quel endroit as-tu rencontré des problèmes ?
Dans certain cas d'erreurs de requêtes surtout, ou dans certain cas de
figures de syntaxes cafouillage entre les " et les '
j'ai fini par y réguler en écrivant un fichier temporaire et en
exécutantes sqlplus @fic_temp
mais c'est vrai que cela pourrait être éviter
Pour un contrôle parfait des sous-processus, regarde le module
subprocess, même s'il est un peu plus compliqué.
J'ai fait quelques tests (windows XP, python 2.4, Oracle 10.2) et il me semble que le processus sqlplus se termine toujours, en tout cas quand il est lancé par popen il ne se bloque pas pour attendre des commandes. A quel endroit as-tu rencontré des problèmes ?
Dans certain cas d'erreurs de requêtes surtout, ou dans certain cas de figures de syntaxes cafouillage entre les " et les '
j'ai fini par y réguler en écrivant un fichier temporaire et en exécutantes sqlplus @fic_temp
mais c'est vrai que cela pourrait être éviter
Pour un contrôle parfait des sous-processus, regarde le module subprocess, même s'il est un peu plus compliqué.