我使用的是Python 3.6,pyodbc,并连接到SQL Server.
我正在尝试连接到数据库,然后创建带参数的查询.
这是代码:
import sys
import pyodbc
# connection parameters
nHost = 'host'
nBase = 'base'
nUser = 'user'
nPasw = 'pass'
# make connection start
def sqlconnect(nHost,nBase,nUser,nPasw):
try:
return pyodbc.connect('DRIVER={SQL Server};SERVER='+nHost+';DATABASE='+nBase+';UID='+nUser+';PWD='+nPasw)
print("connection successfull")
except:
print ("connection failed check authorization parameters")
con = sqlconnect(nHost,nBase,nUser,nPasw)
cursor = con.cursor()
# make connection stop
# if run WITHOUT parameters THEN everything is OK
ask = input ('Go WITHOUT parameters y/n ?')
if ask == 'y':
# SQL without parameters start
res …Run Code Online (Sandbox Code Playgroud) 我需要使用输入参数名称SqlServer stored procedure来自python2.7via pyodbc模块.
我根据输入参数顺序的文档尝试:
cursor.execute('{CALL [SP_NAME](?,?)}',
('value', 'value'))
Run Code Online (Sandbox Code Playgroud)
它工作,但我需要通过parameter name of stored procedure因为存储过程输入参数的顺序总是改变.所以我需要通过名字传递它们.
cursor.execute('{CALL [SP_NAME](@param1name,@param2name)}',
('value', 'value'))
Run Code Online (Sandbox Code Playgroud)
但这不起作用.什么是正确的语法?