«Нет результатов. Предыдущий SQL не был запросом» при попытке запросить DeltaDNA с помощью Python - PullRequest
1 голос
/ 08 мая 2019

В настоящее время я пытаюсь запросить базу данных deltadna. В их Руководстве по прямому доступу к SQL говорится, что любые совместимые с PostgreSQL ODBC инструменты должны иметь возможность подключаться без проблем. Используя руководство, я настроил источник данных ODBC в windows

Я попытался добавить 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)

Result is ProgrammingError: Нет результатов. Предыдущий SQL не был запросом.

1 Ответ

1 голос
/ 09 мая 2019

Попробуйте так:

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 будет указывать на объект курсора, который не выполнил ни одного запроса.

...