15.0.2 upgrade issue wrt passing null parameters to procedure



After upgrading to 15.0.2 I have been unable to pass null's to
procedures using python. Anyone else seen this? Suggestions?

More detail -

I am using the python-sybase lib. In all previous instances
(including 15.0.1) we could pass python "None" as a parameter to any
procedure and it would be resolved as null. Under the hood they were
always being passed as CS_INT_TYPE.

After 15.0.2 Sybase is complaining, saying:
"Implicit conversion from datatype 'INT' to 'VARCHAR' is not allowed.
Use the CONVERT function to run this query. "

Looking in the release notes I can find no mention of a change
relevant to this. I have to say now that i'm looking in greater
detail its not clear to me why the implicit conversion ever worked,
but it did.

Here is a CTX debux trace of the action:

params["@domain"]=None
cursor.callproc('getPackages',params)
Cursor.callproc
ct_cmd_drop(cmd2) -> CS_SUCCEED
ct_cmd_alloc(conn0, &cmd) -> CS_SUCCEED, cmd3
ct_command(cmd3, CS_RPC_CMD, "getPackages", CS_NULLTERM, CS_UNUSED) ->
CS_SUCCEED
ct_param(cmd3, &databuf12->fmt=[name:"@domain" type:CS_INT_TYPE
status:CS_INPUTVALUE format:CS_FMT_UNUSED count:1 maxlength:4 scale:0
precision:0], databuf12->buff, -1286404424, -1) -> CS_SUCCEED
ct_send(cmd3) -> CS_SUCCEED
servermsg_cb
Msg 257, Level 16, State 1, Procedure getPackages
Implicit conversion from datatype 'INT' to 'VARCHAR' is not allowed.
Use the CONVERT function to run this query.


anyone can help with this?

.



Relevant Pages