[python-sybase] Bug in param replacing in query (test case attached)
Joshua Moore-Oliva
josh at chatgris.com
Mon, 19 Jul 2004 18:58:44 -0400
Basically, whenever I insert a text field into a table, it gets a whitespace added to the end..
I am using Sybase 0.36 with freetds
Here is a simple python script displaying this behaviour (server names and passwords removed for security)
import Sybase
sServer=''
sUser=''
sPassword=''
sDbName=''
conn = Sybase.connect( sServer, sUser, sPassword, sDbName )
cur = conn.cursor()
cur.execute( "CREATE TABLE tblTest( iId int, sIp text );" )
sSql = ( 'INSERT INTO tblTest ( iId, sIp )\n'
' VALUES( 1, @sIp ); \n' )
cur.execute( sSql
, { '@sIp' : '12.34.56.87' } )
After this scripts runs, run this command
SELECT * FROM tblTest WHERE sIp LIKE '% ';
you will see the row come up.. and just as further proof that it's not a weird LIKE operator..
UPDATE tblTest SET sIp = rtrim(CAST( sIp AS varchar ));
will have show that it did indeed remove a space from the end as shown by a consecutive
SELECT * FROM tblTest WHERE sIp LIKE '% ';
Josh.