subprocess & isql
frank at chagford.com
Fri Jul 15 15:52:29 CEST 2011
"peterff66" <peterff66 at yahoo.com> wrote in message
news:ivo9or+jpph at eGroups.com...
> Hello Python community,
> I am working on a project that retrieves data from remote Sybase. I have
> to use isql and subprocess to do this. Is the following correct?
> 1. call subprocess.popn to run isql, connect to Sybase
> 2. run sql ("select ...from ...")
> 3. write retrieved data to subprocess.pipe
> 4. retrieve data from pipe
> Did anybody do similar work before? Any ideas (or code piece) to share?
I did something vaguely similar a while ago. I don't know how helpful this
will be, but it may give you some ideas.
Firstly, these are the main differences between your scenario and mine -
1. I was using 'osql' to connect to MS SQL Server.
2. I used os.popen4, not subprocess. Hopefully you can follow the guidelines
in the manual to translate to subprocess.
3. In my case, I built up a long command to create and populate various
database tables using StringIO, passed the string to popen4.stdout, and then
read popen4.stdin and displayed it on the screen to read any output.
4. On looking at my code, I see that I started a sub-thread to read
popen4.stdin. I can't remember why I did that, but it may have been
something to do with getting the output in realtime instead of waiting for
the command to finish executing.
Here is the code that I used -
from cStringIO import StringIO
line = stdout.readline()
if not line:
os.environ['OSQLPASSWORD'] = pwd
sql_stdin, sql_stdout = os.popen4('osql -U %s -d %s -n' % (user,
s = StringIO()
[call function to build up commands]
More information about the Python-list