2017-09-14 51 views
0

我正在用Python的Django框架构建一个web应用程序,DB是Sql服务器Azure,使用Pyodbc。在Python中运行sql server查询时出错error

我有一个问题,我无法去解决,我得到一个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() 
+2

为什么在Django中使用原始SQL,特别是对于这样一个简单的查询? –

回答

3

pyodbc使用?作为参数占位符,而不是%s

sql = 'select * from banks_row_data where file_name = ?' 

但请注意,因为您使用的是Django,您应该使用Django模型图层来处理这种查询。

相关问题