【问题标题】:correct syntax for SQL calls in python with pyodbc使用pyodbc在python中进行SQL调用的正确语法
【发布时间】:2021-04-17 07:19:27
【问题描述】:

我需要帮助才能以正确的方式从我的 python 脚本编写 SQL 调用。 我的脚本目前的样子是:

import pyodbc
cnx = pyodbc.connect(**connection details**)
c = cnx.cursor()
results = c.execute("select * .....")
final_result= results.fetchall()

问题是有时结果值是 NONE 类型的对象,有时我得到一个返回值。

我想知道以下方式是否是正确的调用方式,因为它似乎每次都适用于所有查询

import pyodbc

cnx = pyodbc.connect(**connection details**)

c = cnx.cursor()

c.execute("select * .....")
final_result= c.fetchall()

【问题讨论】:

    标签: sql python-3.x pyodbc


    【解决方案1】:

    您的第二种方法是正确的,并且是许多 DB API 模块所需要的。但是,pyodbc 扩展了 DB API 规范,以便 Cursor.execute() returns the Cursor object itself 所以你可以简单地做

    final_result = c.execute("select * .....").fetchall()
    

    【讨论】:

    • 我确实尝试过 """ final_result = c.execute("select * .....").fetchall() """。但它返回的是一个 None 对象。
    • 你用的是什么版本的pyodbc?
    • 我使用的是 4.0.30 版本
    • 实际情况是客户端向我提供了一个存储过程,当我调用它时应该返回我的内容,当我在 SQL CLI/studio 中执行该过程时,它会返回适当的结果,但是当我通过 pyodbc 调用它它什么都不返回
    • 我看到你提出了一个关于存储过程调用的新问题。谢谢你这样做。
    猜你喜欢
    • 2019-09-24
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多