【发布时间】:2019-10-16 12:18:25
【问题描述】:
当我使用 pyodbc 查询我的 SQL 服务器时,我只得到我请求的字段的名称(而不是值本身)。
import pyodbc
conn = pyodbc.connect(connection_string)
cursor = conn.cursor()
cursor.execute('SELECT ? FROM [Projects]', '[ProjectNo]')
for row in cursor.fetchall():
print(row)
这将打印以下内容:
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
('[ProjectNo]', )
行数等于 Projects 表中的行数。当 cursor.execute 中的第二个参数是“[ProjectNo]”、“ProjectNo”,甚至是“blahblahblahblah”时,我遇到了同样的问题;每行只给出请求字段的名称。
如果我在 cursor.execute 中只使用一个参数,我没有这个问题:
cursor.execute('SELECT [ProjectNo] FROM [Projects]')
这将返回我期望的结果。
我在这里错过了什么?
【问题讨论】:
-
您不能为 db 对象(列、表..)使用参数。仅用于值。
-
@Serg Aha,当然。我记得以前遇到过这个问题,答案很明显。谢谢