Ошибка PyODBC: нет результатов. Предыдущий SQL не был запросом. Использование «SET NOCOUNT ON»

Я знаю, что этот вопрос задавали раньше, я уже просмотрел здесь< /а>. Я использовал SET NOCOUNT ON в SQL-запросе, но он выдает ошибку. Решил опубликовать здесь свой код, чтобы его можно было хорошо просмотреть. Кто-нибудь может мне с этим помочь?

    @property
    def sqlquery(self):
        retry_flag = True
        retry_count = 0
        conn = pyodbc.connect("Driver={SQL Server};"
                              "Server=server1;"
                              "Database=db1;"
                              "Trusted_Connection=yes;")
        cursor = conn.cursor()
        while retry_flag and retry_count < 10:
            try:
                cursor.execute('''
        SET NOCOUNT ON;
        SELECT * FROM xx.y
        WHERE y = '%s'
        AND a = '%s'
        AND b = '%s'
        AND c = '%s'
        AND d = '%s' ''' % (1stplaceholder, 2nd, 3rd, 4th, 5th))
                retry_flag = False
            except:
                print("Retry after 1 sec")
                retry_count = retry_count + 1
                time.sleep(1)
        for row in cursor:
            if cursor is None:
                return False
            else:
                return row[19]
        conn.close()

Я также упомянул этот вопрос, поскольку я получение ошибки pyodbc.Error: ('01000', '[01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionRead (recv()). (10054) (SQLExecDirectW)')

У меня есть 3 sql-запроса, подобных этому, в моем скрипте, и после выполнения почти 10 000 итераций он выдал ошибку pyodbc.ProgrammingError: No results. Предыдущий SQL не был запросом. Таким образом, SQL-запросы в порядке, равно как и подключение к базе данных.


person Karan M    schedule 02.08.2018    source источник
comment
Попробуйте удалить SET NOCOUNT ON.   -  person Gordon Linoff    schedule 03.08.2018
comment
Раньше у меня не было SET NOCOUNT ON, и когда я столкнулся с ошибкой pyodbc.ProgrammingError: No results. Предыдущий SQL не был запросом ранее, после этого я использовал SET NOCOUNT ON   -  person Karan M    schedule 03.08.2018
comment
Единственное решение, которое я смог найти, — разделить итерации и запускать скрипт отдельно для каждой из них.   -  person Karan M    schedule 15.08.2018