|
From: <Sha...@in...> - 2003-04-22 11:39:58
|
Ehmm...
(I don't currently have access to the software, so this advice is
somewhat of a shot in the dark:)
You seem to be reusing the cursor to execute a second query before
you're really through
with the results from the earlier query. Sybase has a strong dislike for
this. If I'm right,
you should see the printing of the first query result before the
exception. If so, to fix, you
need to either put the conn.cursor() and cursor.close() calls in the
loop, or otherwise make
sure to fetch until there are no more records.
Just to make things simpler, try something like=20
cursor =3D conn.cursor()
cursor.execute("SELECT id, queuetype FROM Components WHERE id =3D =
@n",
{"@n":'a'} )
(c,qtype) =3D cursor.fetchone()
print comp, qtype
outside any loop.
Hope this helps,
Shai.
-----Original Message-----
From: Nicholas Veeser [mailto:nic...@pl...]=20
Sent: Monday, April 21, 2003 21:26
To: pyt...@ob...
Subject: RE: [python-sybase] Problem binding params with FreeTDS
Ok, I tried the @n with single quotes, with double quotes escaped, with
no quotes=20
and I still get the same problem every time.
thoughts?
Nicholas
:CODE:
cursor =3D conn.cursor()
comps =3D ('a', 'b', 'c', 'd')
for comp in comps:
cursor.execute("SELECT id, queuetype FROM Components WHERE id =
=3D
@n", {"@n":comp} )
(c,qtype) =3D cursor.fetchone()
print comp, qtype
cursor.close()
:ERROR:
Traceback (most recent call last):
File "./DB.py", line 69, in ?
_query3(conn)
File "./DB.py", line 56, in _query3
cursor.execute("SELECT id, queuetype FROM Components WHERE id =3D =
@n",
{"@n":comp} )
File "/usr/local/lib/python2.2/site-packages/Sybase.py", line 380, in
execute
self._raise_error(Error, 'ct_param')
File "/usr/local/lib/python2.2/site-packages/Sybase.py", line 310, in
_raise_error
raise exc(text)
Sybase.Error: ct_param
-----Original Message-----
From: Sha...@in...
[mailto:Sha...@in...]
Sent: Sunday, April 20, 2003 3:54 AM
To: Nicholas Veeser; pyt...@ob...
Subject: RE: [python-sybase] Problem binding params with FreeTDS
Assuming your command is as reported in the traceback (...id =3D '@n') =
and
not as in the source, just remove the single quotes from around the
"@n". Your command specifies not a parameter named "@n", but a string
constant.
Hope this helps,
Shai.
-----Original Message-----
From: Nicholas Veeser [mailto:nic...@pl...]=20
Sent: Saturday, April 19, 2003 02:02
To: pyt...@ob...
Subject: [python-sybase] Problem binding params with FreeTDS
I am using FreeTDS 0.61
I am doing a basic bind with parameters and I am getting an error.
cursor =3D conn.cursor()
comps =3D ('a', 'b', 'c')
for comp in comps:
cursor.execute("SELECT id, queuetype FROM Components WHERE id =
=3D
'@' ", {'@n' : comp} )
(c,qtype) =3D cursor.fetchone()
print comp, qtype
cursor.close()
My results are thus...
Traceback (most recent call last):
File "./DB.py", line 69, in ?
_query3(conn)
File "./DB.py", line 56, in _query3
cursor.execute("SELECT id, queuetype FROM Components WHERE id =3D
'@n'", { '@n' : comp} )
File "/usr/local/lib/python2.2/site-packages/Sybase.py", line 380, in
execute
self._raise_error(Error, 'ct_param')
File "/usr/local/lib/python2.2/site-packages/Sybase.py", line 310, in
_raise_error
raise exc(text)
Sybase.Error: ct_param
Any thoughts?
Thanx
Nicholas
_______________________________________________
Python-sybase mailing list
Pyt...@ob...
https://object-craft.com.au/cgi-bin/mailman/listinfo/python-sybase
_______________________________________________
Python-sybase mailing list
Pyt...@ob...
https://object-craft.com.au/cgi-bin/mailman/listinfo/python-sybase
|