pypyodbc не фиксирует - PullRequest
       21

pypyodbc не фиксирует

0 голосов
/ 24 сентября 2018

У меня есть запрос SQLServer TSQL, который имеет несколько операторов INSERT, которые варьируются от довольно простых до довольно сложных.

Этот запрос работает в SQLServer Management Studio.

Когда я использую Python pypyodbc package и запускаю скрипт, скрипт запускается, но не фиксируется.Я пытался с и без функции commit ().

НО если я укажу инструкцию SELECT в конце, скрипт фиксирует вставки.

Так что все хорошо, потому что это работает, но я помещаю неприменимый оператор SELECT в конец всех моих сценариев.

У кого-нибудь есть идеи, как я могу заставить их коммититься без оператора SELECT в конце?Я не хочу разбивать запросы на несколько запросов.

Спасибо!

    def execute_query(self,
                  query,
                  tuple_of_query_parameters,
                  commit=False,
                  return_insert_id=False,
                  return_results=True):
    self.open_cursor()

    try:
        self.connection_cursor.execute(query,
                                       tuple_of_query_parameters)

        result_set = None
        if return_results:
            if return_insert_id:
                result_set = self.connection_cursor.fetchone()[0]
            else:
                result_set = self.connection_cursor.fetchall()

            if commit:
                self.connection_cursor.commit()

    except pypyodbc.Error as e:
        print('Check for "USE" in script!!!')
        raise
    finally:
        self.close_cursor()

    return result_set

1 Ответ

0 голосов
/ 24 сентября 2018

Попробуйте:

self.connection_cursor.execute(query,
                                   tuple_of_query_parameters)
if commit:
    self.connection_cursor.commit() #put commit here, immediately after execute

Я думаю, что поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...