Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 11, 2015 11:08:56

AEX
От: Екатеринбург
Зарегистрирован: 2015-09-04
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение хранимой процедуры python + pyodbc + ms sql 2005

Доброго дня.

К базе подключился, все ок, строка коннекта:

conn = pyodbc.connect("DRIVER={SQL Native Client};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s" %(server, dbname, login, password))

Далее пытаюсь выполнить процедуру

  
excur = conn.cursor()
key = input('Для продолжения\nНажмите ENTER ')
if ord(msvcrt.getch()) == 255 and len(key) == 0:
    excur.execute("exec dbo.proc_Repack @CaseFrom = ?, @CaseTo = ?, @UserName = ?", CaseFrom, CaseTo, UserName)
    conn.commit()

Процедура делает 4 апдейта, но в результате выполняется только один.
В MS SQL процедура выполняется на ура.
Подскажите, где не прав?

Офлайн

#2 Ноя. 16, 2015 09:51:44

AEX
От: Екатеринбург
Зарегистрирован: 2015-09-04
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение хранимой процедуры python + pyodbc + ms sql 2005

Проблему решил.
Ошибка была в процедуре.
Тему можно закрывать.

Офлайн

#3 Ноя. 9, 2017 12:03:21

Ainur
Зарегистрирован: 2017-10-26
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение хранимой процедуры python + pyodbc + ms sql 2005

Аналогичная проблема.

     
def MyFunction3(self):
        self.ui.textEdit_2.setText("")
        try:
            connection = pypyodbc.connect('Driver={SQL Server};Server=*;Database=*; uid=*;pwd=*')
            cursor = connection.cursor()
            code2=self.ui.textEdit_4.toPlainText() #ввод параметра с экрана
            date =  ("""
                declare @pmday_ int = datediff(day,'19900101','%s')
                exec dbo.spkz_autoretr_finder @lid_net = 623, @lid_ret = 17, @pmday = @pmday_;""" %code2)
            cursor.execute(date)
            connection.commit()
            self.ui.textEdit_2.setText('Successful')
        except Exception:
            self.ui.textEdit_2.setText('Error. Please, try again')  
ipython выполняю построчно все работает. При выполнении функции, конектится к базе и не завершает выполнение процедуры, в трассере ошибка прирывания клиентом. От чего это может быть? Но при этом в приложении нет ошибки, пишет что выполнено успешно

Отредактировано Ainur (Ноя. 9, 2017 12:04:32)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version