在 pyodbc 中将表名作为参数传递

发布于 2024-11-19 14:20:37 字数 120 浏览 3 评论 0原文

我试图将 pyodbc 中的表名作为参数传递,以访问来自 ms sql 2005 的数据。我尝试用 ? 替换它,但它从来没有工作。我很高兴收到有关如何实现这一目标的任何建议。

I am trying to pass a table name in pyodbc as a parameter to access data from ms sql 2005. I've tried to substitute it with ? but it never works. I would be glad to receive any advice on how to accomplish this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

找个人就嫁了吧 2024-11-26 14:20:38

由于您使用的是 pyodbc,我假设您没有调用 SPROC。
我建议在 python 中构建 SQL 字符串,然后将其传递给 SQL 来执行。

import pyodbc
dbconn = pyodbc.connect(ConnectionString)
c = dbconn.cursor()

j = 'table1' #where table1 is entered, retreived, etc
query = "Select * from %s" % j
c.execute(query)
result = c.fetchall()
print 'Done'

Since you are using pyodbc, I assume you are not calling a SPROC.
I recommend building your SQL string in python and then passing it to SQL to execute.

import pyodbc
dbconn = pyodbc.connect(ConnectionString)
c = dbconn.cursor()

j = 'table1' #where table1 is entered, retreived, etc
query = "Select * from %s" % j
c.execute(query)
result = c.fetchall()
print 'Done'
情绪 2024-11-26 14:20:38

SQL Server 不能使用变量作为表名。您需要使用动态 SQL 才能正常工作。

在这里查看如何处理动态表名。 http://www.sommarskog.se/dynamic_sql.html#objectnames

You can't have variable as a table name SQL Server. You need to use dynamic SQL for that to work.

Look here for how to deal with dynamic table names. http://www.sommarskog.se/dynamic_sql.html#objectnames

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文