Извлекать данные из SQL Server, используя подстановочный знак с LIKE - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть проект django, который подключен к SQL Server с использованием pyodbc .

Я могу подключиться и получить данные.

Но проблема в том, что япопытался отфильтровать данные по нескольким полям, используя WHERE & LIKE сбой системы и отобразил следующую ошибку.

объект 'tuple' не имеет атрибута 'format'

views.py

from django.shortcuts import render
import pyodbc


def connect(request):

    conn = pyodbc.connect(
        'Driver={ODBC Driver 17 for SQL Server};'
        'Server=DESKTOP-LPD1575\\SQLEXPRESS;'
        'Database=testDB;'
        'UID=test;'
        'PWD=test;'

    )
    query = 'n'
    queryid = 3
    cursor = conn.cursor()

    c = cursor.execute('SELECT * FROM Artist where artistName like  ? or id = ?',('%{0}%','{1}').format(query,queryid))

    print(c)
    return render (request,'connect.html',{"c":c})

connect.html

<table align = "center">
<tr align="center">
            <th>id</th>
            <th>FolderNumber</th>
            <th>Folderdate</th>

        </tr>
{% for row in c %}
 <tr align="center">
    <td>{{ row.0 }}</td>
    <td>{{ row.1 }}</td>
    <td>{{ row.2 }}</td>

</tr>
{% endfor %}
</table>

1 Ответ

0 голосов
/ 19 сентября 2019

Если я правильно понимаю, вы должны передать кортеж в качестве второго параметра cursor.execute(), используя только буквальные значения:

c = cursor.execute('SELECT * FROM Artist WHERE artistName LIKE ? OR id = ?',
    ('%' + query + '%', queryid))
...