【问题标题】:Executing SQL Server Query in Python在 Python 中执行 SQL Server 查询
【发布时间】:2020-09-17 17:07:37
【问题描述】:

我已使用 pyodbc 模块将 SQL Server 与 Python 连接起来。该脚本似乎运行正确,但是,当我尝试执行我的 SQL 语句时出现错误。

这就是我所做的:

import pandas
import numpy
import pyodbc


conn = pyodbc.connect(
    'Driver={SQL Server};'
    'Server=test\SQLEXPRESS;'
    'Database=test1;'
    'Trusted_Connection=yes;'
    )


 cursor = conn.cursor()


 def read(conn):
   print("Read")
   cursor = conn.cursor()
   cursor.execute("select * from table")
   for row in cursor:
      print(f'row = {row}')
      print()



 read(conn) #to execute

我想要执行一个我通常会在我的 SQL Server 中运行但在 Python 中运行的查询:

  SELECT * FROM table

这是错误:

ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC SQL Server Driver][SQL 
Server]Invalid object name 'Node'. (208) (SQLExecDirectW)")

我正在积极研究这个。

【问题讨论】:

  • “我在尝试执行我的 SQL 语句时遇到错误”您忘记包含所述错误。
  • 我刚刚更新了这个
  • 你不应该使用cursor.fetchAll()
  • 现在让我试试看,谢谢

标签: python sql-server pyodbc


【解决方案1】:

试试这个:

def read(conn):
   print("Read")
   cursor = conn.cursor()
   cursor.execute("select * from table")
   allrows = cursor.fetchall()
   for row in allrows:
      print(f'row = {row}')
      print()

【讨论】:

  • 谢谢,我没有收到以前的错误,所以我相信这行得通。内核现在正在运行。通过执行此代码,它应该给我查询输出,对吗? - 或者我必须“调用”这个函数?读()?
  • 应该,在开始循环遍历行之前,您只是错过了 fetchall()。还是需要调用读取函数
  • 哇哦,它的工作原理,非常感谢你的知识
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
相关资源
最近更新 更多