我正在使用Python的Django框架构建一个Web应用程序,数据库是Sql服务器Azure,使用Pyodbc。
我有一个无法解决的问题,我得到一个 parameter(file_name)
这是一个字符串,当使用该参数运行查询时,我在第一种情况下得到空结果,
"sql = sql % tuple('?' * len(params))
TypeError: not all arguments converted during string formatting"
在第二种情况下,我做错了什么?
file_name=request.POST.get('filetodelete')
with connections['default'].cursor() as c:
1st case
parms=[file_name]
sql='select * from banks_row_data where file_name=%s'
c.execute (sql,parms)
test=c.fetchall()
2nd case
c.execute (sql,file_name)
test=c.fetchall()
最佳答案
pyodbc 使用 ?
作为参数占位符,而不是 %s
。
sql = 'select * from banks_row_data where file_name = ?'
请注意,由于您使用的是 Django,因此您确实应该使用 Django 模型层进行此类查询。
关于python - 在Python中运行sql server查询时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46212592/