如何从Python Sybase模块获取输出参数

时间:2012-03-17 06:48:18

标签: python

我暂时遇到这个问题,需要你的意见。

我必须使用2个输出参数(int和varchar)处理供应商的过程调用。我选择了Python的Sybase模块,一切正常,直到我发现我找不到描述如何使用输出参数调用存储过程的文档。

Google上始终存在的主要文件是http://python-sybase.sourceforge.net/news.html。他们很快就会介绍函数调用:

  

通过OUTPUT()函数支持存储过程的输出参数。 OUTPUT()的参数确定将分配用于接收输出值的缓冲区的类型和大小。

c.callproc('test_proc', {'@type': 'business',
                         '@tot_sales': 5,
                         '@num_books': Sybase.OUTPUT(1)})

如果输出类型是整数,则Sybase.OUTPUT(1)工作正常,但我不知道 如何处理Varchar(和其他类型)。

对于不正确的参数类型,我总是收到错误:

  

DatabaseError:消息257,级别16,状态1,过程sp_caller_id_manage   不允许从数据类型“VARCHAR”到“INT”的隐式转换。使用CONVERT函数运行此查询。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试将CS​​_DATAFMT()的实例传递给OUTPUT而不是1(它们使用其他所有参数都传递给Sybase.py中的DBMS)。 尝试设置字段数据类型和maxlength(可能是状态)。