>

변수를 사용하여 쿼리를 만들려고하는데 문자열 변수가 작동하지 않습니다. 쿼리에서 변수PrimaryAxisSecondaryAxis를 어떻게 형식화해야합니까? https://github.com/mkleehammer/pyodbc/wiki의 참조를 사용했습니다./Getting-started # parameters 페이지에는 작은 따옴표가 사용됩니다. 운없이 작은 따옴표와 큰 따옴표를 시도했습니다.

import pyodbc
# Connect to database
conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=C:\Temp\TestDB.accdb;'
    r'Uid=;'
    r'Pwd=;'
    )
# Make cursor
connection = pyodbc.connect(conn_str)
connection.setencoding('utf-8')
cursor = connection.cursor()
# Create test table
cursor.execute("CREATE TABLE Coordinates (ID integer, X integer, Y integer)")
connection.commit()
# Create test data (Error "Missing semicolon (;)" if multiple values in one insert, thats why multiple insertions... not the main question)
cursor.execute("INSERT INTO Coordinates (ID, X, Y) VALUES (1,10,10);")
cursor.execute("INSERT INTO Coordinates (ID, X, Y) VALUES (2,20,10);")
cursor.execute("INSERT INTO Coordinates (ID, X, Y) VALUES (3,30,10);")
connection.commit()
# Filter parameters
Line = 10
Start = 10
End = 30
# Works
cursor.execute(r"""
                SELECT *
                FROM Coordinates
                WHERE Y = ? AND X BETWEEN ? AND ? """, Line, Start, End )
rows = cursor.fetchall()
for row in rows:
    print(row)
# does not work - main question
PrimaryAxis = 'X'
SecondaryAxis = 'Y'
cursor.execute(r"""
                SELECT *
                FROM Coordinates
                WHERE ? = ? AND ? BETWEEN ? AND ? """, SecondaryAxis, Line, PrimaryAxis, Start, End )
rows = cursor.fetchall()
for row in rows:
    print(row)


  • 이전 MIPS 어셈블리에서 2 개의 이진수 사이의 비트 차이
  • 다음 python - apply lambda가있는 데이터 프레임에서 if 문을 구현하는 올바른 방법을 알 수 없습니다