我使用Python来调用我的MSSQL数据库的存储过程,但它不喜欢通过“无”值。 这也许是pymssql的错误吗? 或者是有一些方法,以确保“无”被转换成空? 我需要能够传递NULL。
示例代码:
cn = pymssql.connect(my connection info)
cur = cn.cursor()
params = range(2)
params[0] = 1
params[1] = None # this needs to pass as NULL
cur.callproc('mystoredproc', params)
它看起来就像是一个已知的问题 。
更新:我找到了解决办法。 虽然pymssql模块确实需要固定的,我可以使用其附带的_mssql模块,并调用低级别例程。
例:
import _mssql
conn = _mssql.connect(connection info, syntax is slightly different than pymssql)
proc = conn.init_procedure('mystoredproc')
proc.bind(1, _mssql.SQLINT4, name='@firstparam')
proc.bind(None, _mssql.SQLINT4, name='@secondparam', null=True)
proc.execute()
“空=真”的设置需要允许这个参数来接受空值,和“无”将被转换为NULL。