Выполнение нескольких предложений INSERT в базе данных SQLServer приводит к разрыву канала - PullRequest
0 голосов
/ 08 апреля 2019

Следующий код, который у меня есть, выполняется на сервере, где Java-клиент выполняет его, просто вызывая команду «py scriptname.py».Существует очень специфический сценарий использования этого сценария, который вызывает отладку головной боли.

Этот сценарий отлично работает в любое другое время, за исключением раннего понедельника, когда он запускался в первый раз.Мое основное подозрение заключается в том, что база данных, в которой они выполняются, как-то «спит» после выходных, и это вызывает сбой.Если этот код запускается через минуту вручную, просто выполняя ту же команду «py scriptname.py», то все работает нормально.

Однако это заставляет меня поверить, что в коде есть фундаментальная проблема.Код, вызывающий ошибку:

for row in self.cursorLocal.fetchall():
        sqlName = "INSERT INTO TABLE ATTRIBUTE1, ATTRIBUTE2 VALUES('{}','{}')".format(row[1],row[2])
        print(sqlName) # <-- line 321
        self.cursorName.execute(sqlName)
        self.conName.commit()

Исключение: [Errno 32] Сломанный канал

Traceback: 
Traceback (most recent call last): File "C:\folder\scriptname.py", line 88, in __init__ self.InsertTo() File "C:\folder\scriptname.py", line 321, in InsertTo print(sqlName) BrokenPipeError: [Errno 32] Broken pipe 

Я пробовал множество различных сценариев, пытаясь повторить это в моей локальной среде., но без удачи.Однако эта же ошибка постоянно происходит каждое утро понедельника.Меня также смущает, почему из-за оператора печати выдается ошибка.

...