Python SQLAlchemy pyodbc.Error: ('HY000', 'Драйвер не выдал ошибку!') - PullRequest
0 голосов
/ 04 июня 2018

Привет всем. Сейчас я работаю с Pandas и MSSQL.У меня все работает нормально, но недавно после обновления SQlalchemy я получаю следующую ошибку, когда пытаюсь загрузить информацию в БД через df.to_sql

pyodbc.Error: ('HY000', 'драйвер сделалне выдавать ошибку! ')

Мое соединение определено следующим образом

engine = create_engine('mssql+pyodbc://Reporter:******@localhost:1433/SourcingDb?driver=SQL+Server')

df.to_sql (' ProductivityDeck ', con = engine, if_exists =' replace ', index = False)

и полная ошибка, которую я получаю, это

Traceback (most recent call last):

Файл "C: \ Python \ Python36 \ lib \ site-packages \ sqlalchemy \ engine \ base.py", строка 1182, в контексте _execute_context) Файл "C: \ Python \ Python36 \ lib \ site-packages \ sqlalchemy \ engine \ default.py", строка 470, в файле do_execute cursor.execute (оператор, параметры) pyodbc.Error: ('HY000', 'Драйвер не выдал ошибку!')

Вышеуказанное исключение было прямой причиной следующего исключения:

Traceback (most recent call last):
  File "C:/Users/H212310/PycharmProjects/untitled2/UpdateCEDeckv2.py", line 23, in <module>
    df.to_sql('ProductivityDeck', con=engine, if_exists='replace', index= False)
  File "C:\Python\Python36\lib\site-packages\pandas\core\generic.py", line 2127, in to_sql
    dtype=dtype)
  File "C:\Python\Python36\lib\site-packages\pandas\io\sql.py", line 450, in to_sql
    chunksize=chunksize, dtype=dtype)
  File "C:\Python\Python36\lib\site-packages\pandas\io\sql.py", line 1149, in to_sql
    table.insert(chunksize)
  File "C:\Python\Python36\lib\site-packages\pandas\io\sql.py", line 663, in insert
    self._execute_insert(conn, keys, chunk_iter)
  File "C:\Python\Python36\lib\site-packages\pandas\io\sql.py", line 638, in _execute_insert
    conn.execute(*self.insert_statement(data, conn))
  File "C:\Python\Python36\lib\site-packages\sqlalchemy\engine\base.py", line 945, in execute
    return meth(self, multiparams, params)
  File "C:\Python\Python36\lib\site-packages\sqlalchemy\sql\elements.py", line 263, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "C:\Python\Python36\lib\site-packages\sqlalchemy\engine\base.py", line 1053, in _execute_clauseelement
    compiled_sql, distilled_params
  File "C:\Python\Python36\lib\site-packages\sqlalchemy\engine\base.py", line 1189, in _execute_context
    context)
  File "C:\Python\Python36\lib\site-packages\sqlalchemy\engine\base.py", line 1402, in _handle_dbapi_exception
    exc_info
  File "C:\Python\Python36\lib\site-packages\sqlalchemy\util\compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "C:\Python\Python36\lib\site-packages\sqlalchemy\util\compat.py", line 186, in reraise
    raise value.with_traceback(tb)
  File "C:\Python\Python36\lib\site-packages\sqlalchemy\engine\base.py", line 1182, in _execute_context  context)
  File "C:\Python\Python36\lib\site-packages\sqlalchemy\engine\default.py", line 470, in do_execute
    cursor.execute(statement, parameters)

Я попытался выполнить откат до более низкой версии SqlAlchemy.Обновите драйвер ODBC в Windows и обновите установку Python и сохранитеs возвращается.

Есть идеи, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

У меня была такая же ошибка («HY000», «Драйвер не выдал ошибку!»).Существующие решения в нескольких потоках StackOverflow не помогли.

В моем случае ошибка пришла от pyodbc.connect().

Я переустановил python и зависимости, и проблема исчезла.

0 голосов
/ 05 июня 2018

ОК, это была «тихая ошибка для известной ошибки в пандах 23, ее снижение до v22 устраняет ошибку, и вы можете загрузить более 1000 строк.

это работает на

https://github.com/pandas-dev/pandas/issues/21103

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