【问题标题】:"No results. Previous SQL was not a query" when trying to query DeltaDNA with Python尝试使用 Python 查询 DeltaDNA 时“没有结果。以前的 SQL 不是查询”
【发布时间】:2019-05-08 20:15:10
【问题描述】:

我目前正在尝试查询 deltadna 数据库。他们的 Direct SQL Access 指南指出,任何 PostgreSQL ODBC 兼容工具都应该能够毫无问题地连接。使用指南,我在 windows 中设置了一个 ODBC 数据源

我尝试添加Set nocount on,更改连接字符串的各种格式,将表名更改为(account).(system).(tablename),均无济于事。简单的查询在 Excel 中有效,并且我还交叉引用了 Excel 如何格式化所有内容,所以更奇怪的是我遇到了无查询问题。

import pyodbc

conn_str = 'DSN=name'
query1 = 'select eventName from table_name limit 5'

conn = pyodbc.connect(conn_str)
conn.setdecoding(pyodbc.SQL_CHAR,encoding='utf-8')
query1_cursor = conn.cursor().execute(query1)
row = query1_cursor.fetchone()
print(row)

结果是 ProgrammingError: 没有结果。以前的 SQL 不是查询。

【问题讨论】:

  • 尝试将cursor() 分配和execute() 调用分开。

标签: python odbc pyodbc


【解决方案1】:

试试这样:

import pyodbc

conn_str = 'DSN=name'
query1 = 'select eventName from table_name limit 5'

conn = pyodbc.connect(conn_str)
conn.setdecoding(pyodbc.SQL_CHAR,encoding='utf-8')
query1_cursor = conn.cursor()
query1_cursor.execute(query1)
row = query1_cursor.fetchone()
print(row)

您不能在同一行中进行cursor 声明和执行。从那时起,您的 query1_cursor 变量将指向尚未执行任何查询的游标对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2019-02-24
    • 1970-01-01
    相关资源
    最近更新 更多