On Tue, Sep 12, 2017 at 2:54 PM, Dirk Biesinger
<dirk.biesin...@gmail.com> wrote:
> nope, same result

using raw pyodbc you don't have that problem?

pyodbc would be screwing up here if it's in autocommit mode yet
connection.rollback() is doing something.    please try patching as
follows:

diff --git a/lib/sqlalchemy/dialects/mssql/pyodbc.py
b/lib/sqlalchemy/dialects/mssql/pyodbc.py
index c6368f969..22adafa03 100644
--- a/lib/sqlalchemy/dialects/mssql/pyodbc.py
+++ b/lib/sqlalchemy/dialects/mssql/pyodbc.py
@@ -289,4 +289,8 @@ class MSDialect_pyodbc(PyODBCConnector, MSDialect):
                     version.append(n)
             return tuple(version)

+    def do_rollback(self, connection):
+        pass
+
+
 dialect = MSDialect_pyodbc

this is not a solution but a new feature would need to be added to the
dialect to force absolutely no rollback() calls, however pyodbc should
not need this if it's in autocommit.



>
> P.S. that is why I try to always give feedback once a solution is found.
> There will be someone chasing the same problem.
>
> On Tue, Sep 12, 2017 at 11:51 AM, Dirk Biesinger <dirk.biesin...@gmail.com>
> wrote:
>>
>> I have this event listener already in the code (it's active).
>>
>> I'll give the ?autocommit=True in the create_engine a shot as well.
>>
>>
>> On Tue, Sep 12, 2017 at 11:38 AM, Mike Bayer <mike...@zzzcomputing.com>
>> wrote:
>>>
>>> On Tue, Sep 12, 2017 at 1:56 PM, Dirk Biesinger
>>> <dirk.biesin...@gmail.com> wrote:
>>> > when executing the engine.connect() with pool_reset_on_return=None set
>>>
>>> OK there's a do_rollback in there that isn't controlled by this.  So
>>> let's instead use the event hook that was on the issue to force no
>>> transactions:
>>>
>>> from sqlalchemy import create_engine, event
>>>
>>> engine = create_engine("mssql+pyodbc://...")
>>>
>>>
>>> @event.listens_for(engine, "connect")
>>> def _set_autocommit(dbapi_connection, connection_record):
>>>     dbapi_connection.autocommit = True
>>>
>>>
>>> This is where the original poster fell silent, which tends to
>>> correlate to, "it's fixed".  (note if this person had replied to my
>>> message, we would not have to have this long email thread now.  )
>>>
>>> I believe you can get the same result like this too:
>>>
>>> engine = create_engine("mssql+pyodbc://...?autocommit=true")
>>>
>>>
>>>
>>>
>>> >
>>> > I get this error stack:
>>> >
>>> > 2017-09-12 17:53:37,807 INFO sqlalchemy.engine.base.Engine SELECT
>>> > SERVERPROPERTY('ProductVersion')
>>> > 2017-09-12 17:53:37,808 INFO sqlalchemy.engine.base.Engine ()
>>> > 2017-09-12 17:53:37,849 INFO sqlalchemy.engine.base.Engine SELECT
>>> > schema_name()
>>> > 2017-09-12 17:53:37,850 INFO sqlalchemy.engine.base.Engine ()
>>> > 2017-09-12 17:53:38,182 INFO sqlalchemy.engine.base.Engine SELECT
>>> > CAST('test
>>> > plain returns' AS VARCHAR(60)) AS anon_1
>>> > 2017-09-12 17:53:38,183 INFO sqlalchemy.engine.base.Engine ()
>>> > 2017-09-12 17:53:38,230 INFO sqlalchemy.engine.base.Engine SELECT
>>> > CAST('test
>>> > unicode returns' AS NVARCHAR(60)) AS anon_1
>>> > 2017-09-12 17:53:38,231 INFO sqlalchemy.engine.base.Engine ()
>>> >
>>> > ---------------------------------------------------------------------------
>>> > Empty                                     Traceback (most recent call
>>> > last)
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > _do_get(self)
>>> >    1121             wait = use_overflow and self._overflow >=
>>> > self._max_overflow
>>> > -> 1122             return self._pool.get(wait, self._timeout)
>>> >    1123         except sqla_queue.Empty:
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/queue.py
>>> > in get(self, block, timeout)
>>> >     144                 if self._empty():
>>> > --> 145                     raise Empty
>>> >     146             elif timeout is None:
>>> >
>>> > Empty:
>>> >
>>> > During handling of the above exception, another exception occurred:
>>> >
>>> > ProgrammingError                          Traceback (most recent call
>>> > last)
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> > in _wrap_pool_connect(self, fn, connection)
>>> >    2146         try:
>>> > -> 2147             return fn()
>>> >    2148         except dialect.dbapi.Error as e:
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > unique_connection(self)
>>> >     327         """
>>> > --> 328         return _ConnectionFairy._checkout(self)
>>> >     329
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > _checkout(cls, pool, threadconns, fairy)
>>> >     765         if not fairy:
>>> > --> 766             fairy = _ConnectionRecord.checkout(pool)
>>> >     767
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > checkout(cls, pool)
>>> >     515     def checkout(cls, pool):
>>> > --> 516         rec = pool._do_get()
>>> >     517         try:
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > _do_get(self)
>>> >    1137                     with util.safe_reraise():
>>> > -> 1138                         self._dec_overflow()
>>> >    1139             else:
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> > in __exit__(self, type_, value, traceback)
>>> >      65             if not self.warn_only:
>>> > ---> 66                 compat.reraise(exc_type, exc_value, exc_tb)
>>> >      67         else:
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> > in reraise(tp, value, tb, cause)
>>> >     186             raise value.with_traceback(tb)
>>> > --> 187         raise value
>>> >     188
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > _do_get(self)
>>> >    1134                 try:
>>> > -> 1135                     return self._create_connection()
>>> >    1136                 except:
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > _create_connection(self)
>>> >     332
>>> > --> 333         return _ConnectionRecord(self)
>>> >     334
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > __init__(self, pool, connect)
>>> >     460         if connect:
>>> > --> 461             self.__connect(first_connect_check=True)
>>> >     462         self.finalize_callback = deque()
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > __connect(self, first_connect_check)
>>> >     660                     for_modify(pool.dispatch).\
>>> > --> 661                     exec_once(self.connection, self)
>>> >     662             if pool.dispatch.connect:
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> > in exec_once(self, *args, **kw)
>>> >     245                     try:
>>> > --> 246                         self(*args, **kw)
>>> >     247                     finally:
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> > in __call__(self, *args, **kw)
>>> >     255         for fn in self.listeners:
>>> > --> 256             fn(*args, **kw)
>>> >     257
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> > in go(*arg, **kw)
>>> >    1330             once_fn = once.pop()
>>> > -> 1331             return once_fn(*arg, **kw)
>>> >    1332
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py
>>> > in first_connect(dbapi_connection, connection_record)
>>> >     180                 c._execution_options = util.immutabledict()
>>> > --> 181                 dialect.initialize(c)
>>> >     182             event.listen(pool, 'first_connect', first_connect,
>>> > once=True)
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/connectors/pyodbc.py
>>> > in initialize(self, connection)
>>> >     164         # run other initialization which asks for user name,
>>> > etc.
>>> > --> 165         super(PyODBCConnector, self).initialize(connection)
>>> >     166
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/dialects/mssql/base.py
>>> > in initialize(self, connection)
>>> >    1741     def initialize(self, connection):
>>> > -> 1742         super(MSDialect, self).initialize(connection)
>>> >    1743         self._setup_version_attributes()
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> > in initialize(self, connection)
>>> >     265
>>> > --> 266         self.do_rollback(connection.connection)
>>> >     267
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> > in do_rollback(self, dbapi_connection)
>>> >     439     def do_rollback(self, dbapi_connection):
>>> > --> 440         dbapi_connection.rollback()
>>> >     441
>>> >
>>> > ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Driver 13 for SQL
>>> > Server][SQL Server]111214;An attempt to complete a transaction has
>>> > failed.
>>> > No corresponding transaction found. (111214) (SQLEndTran)')
>>> >
>>> > The above exception was the direct cause of the following exception:
>>> >
>>> > ProgrammingError                          Traceback (most recent call
>>> > last)
>>> > <ipython-input-13-a41175de1d5e> in <module>()
>>> >      16     dbapi_connection.autocommit = True
>>> >      17 #cnxn = pyodbc.connect(connection_str)
>>> > ---> 18 engn.connect()
>>> >      19 #df.to_sql(tbl_server_out, engn, if_exists='append',
>>> > index=False)
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> > in connect(self, **kwargs)
>>> >    2089         """
>>> >    2090
>>> > -> 2091         return self._connection_cls(self, **kwargs)
>>> >    2092
>>> >    2093     def contextual_connect(self, close_with_result=False,
>>> > **kwargs):
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> > in __init__(self, engine, connection, close_with_result, _branch_from,
>>> > _execution_options, _dispatch, _has_events)
>>> >      88         else:
>>> >      89             self.__connection = connection \
>>> > ---> 90                 if connection is not None else
>>> > engine.raw_connection()
>>> >      91             self.__transaction = None
>>> >      92             self.__savepoint_seq = 0
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> > in raw_connection(self, _connection)
>>> >    2175         """
>>> >    2176         return self._wrap_pool_connect(
>>> > -> 2177             self.pool.unique_connection, _connection)
>>> >    2178
>>> >    2179
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> > in _wrap_pool_connect(self, fn, connection)
>>> >    2149             if connection is None:
>>> >    2150
>>> > Connection._handle_dbapi_exception_noconnection(
>>> > -> 2151                     e, dialect, self)
>>> >    2152             else:
>>> >    2153                 util.reraise(*sys.exc_info())
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> > in _handle_dbapi_exception_noconnection(cls, e, dialect, engine)
>>> >    1463             util.raise_from_cause(
>>> >    1464                 sqlalchemy_exception,
>>> > -> 1465                 exc_info
>>> >    1466             )
>>> >    1467         else:
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> > in raise_from_cause(exception, exc_info)
>>> >     201     exc_type, exc_value, exc_tb = exc_info
>>> >     202     cause = exc_value if exc_value is not exception else None
>>> > --> 203     reraise(type(exception), exception, tb=exc_tb, cause=cause)
>>> >     204
>>> >     205 if py3k:
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> > in reraise(tp, value, tb, cause)
>>> >     184             value.__cause__ = cause
>>> >     185         if value.__traceback__ is not tb:
>>> > --> 186             raise value.with_traceback(tb)
>>> >     187         raise value
>>> >     188
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> > in _wrap_pool_connect(self, fn, connection)
>>> >    2145         dialect = self.dialect
>>> >    2146         try:
>>> > -> 2147             return fn()
>>> >    2148         except dialect.dbapi.Error as e:
>>> >    2149             if connection is None:
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > unique_connection(self)
>>> >     326
>>> >     327         """
>>> > --> 328         return _ConnectionFairy._checkout(self)
>>> >     329
>>> >     330     def _create_connection(self):
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > _checkout(cls, pool, threadconns, fairy)
>>> >     764     def _checkout(cls, pool, threadconns=None, fairy=None):
>>> >     765         if not fairy:
>>> > --> 766             fairy = _ConnectionRecord.checkout(pool)
>>> >     767
>>> >     768             fairy._pool = pool
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > checkout(cls, pool)
>>> >     514     @classmethod
>>> >     515     def checkout(cls, pool):
>>> > --> 516         rec = pool._do_get()
>>> >     517         try:
>>> >     518             dbapi_connection = rec.get_connection()
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > _do_get(self)
>>> >    1136                 except:
>>> >    1137                     with util.safe_reraise():
>>> > -> 1138                         self._dec_overflow()
>>> >    1139             else:
>>> >    1140                 return self._do_get()
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> > in __exit__(self, type_, value, traceback)
>>> >      64             self._exc_info = None   # remove potential circular
>>> > references
>>> >      65             if not self.warn_only:
>>> > ---> 66                 compat.reraise(exc_type, exc_value, exc_tb)
>>> >      67         else:
>>> >      68             if not compat.py3k and self._exc_info and
>>> > self._exc_info[1]:
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> > in reraise(tp, value, tb, cause)
>>> >     185         if value.__traceback__ is not tb:
>>> >     186             raise value.with_traceback(tb)
>>> > --> 187         raise value
>>> >     188
>>> >     189 else:
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > _do_get(self)
>>> >    1133             if self._inc_overflow():
>>> >    1134                 try:
>>> > -> 1135                     return self._create_connection()
>>> >    1136                 except:
>>> >    1137                     with util.safe_reraise():
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > _create_connection(self)
>>> >     331         """Called by subclasses to create a new
>>> > ConnectionRecord."""
>>> >     332
>>> > --> 333         return _ConnectionRecord(self)
>>> >     334
>>> >     335     def _invalidate(self, connection, exception=None):
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > __init__(self, pool, connect)
>>> >     459         self.__pool = pool
>>> >     460         if connect:
>>> > --> 461             self.__connect(first_connect_check=True)
>>> >     462         self.finalize_callback = deque()
>>> >     463
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> > in
>>> > __connect(self, first_connect_check)
>>> >     659                 pool.dispatch.first_connect.\
>>> >     660                     for_modify(pool.dispatch).\
>>> > --> 661                     exec_once(self.connection, self)
>>> >     662             if pool.dispatch.connect:
>>> >     663                 pool.dispatch.connect(self.connection, self)
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> > in exec_once(self, *args, **kw)
>>> >     244                 if not self._exec_once:
>>> >     245                     try:
>>> > --> 246                         self(*args, **kw)
>>> >     247                     finally:
>>> >     248                         self._exec_once = True
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> > in __call__(self, *args, **kw)
>>> >     254             fn(*args, **kw)
>>> >     255         for fn in self.listeners:
>>> > --> 256             fn(*args, **kw)
>>> >     257
>>> >     258     def __len__(self):
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> > in go(*arg, **kw)
>>> >    1329         if once:
>>> >    1330             once_fn = once.pop()
>>> > -> 1331             return once_fn(*arg, **kw)
>>> >    1332
>>> >    1333     return go
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py
>>> > in first_connect(dbapi_connection, connection_record)
>>> >     179                                     _has_events=False)
>>> >     180                 c._execution_options = util.immutabledict()
>>> > --> 181                 dialect.initialize(c)
>>> >     182             event.listen(pool, 'first_connect', first_connect,
>>> > once=True)
>>> >     183
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/connectors/pyodbc.py
>>> > in initialize(self, connection)
>>> >     163
>>> >     164         # run other initialization which asks for user name,
>>> > etc.
>>> > --> 165         super(PyODBCConnector, self).initialize(connection)
>>> >     166
>>> >     167     def _dbapi_version(self):
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/dialects/mssql/base.py
>>> > in initialize(self, connection)
>>> >    1740
>>> >    1741     def initialize(self, connection):
>>> > -> 1742         super(MSDialect, self).initialize(connection)
>>> >    1743         self._setup_version_attributes()
>>> >    1744
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> > in initialize(self, connection)
>>> >     264             self._description_decoder =
>>> > self.description_encoding =
>>> > None
>>> >     265
>>> > --> 266         self.do_rollback(connection.connection)
>>> >     267
>>> >     268     def on_connect(self):
>>> >
>>> >
>>> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> > in do_rollback(self, dbapi_connection)
>>> >     438
>>> >     439     def do_rollback(self, dbapi_connection):
>>> > --> 440         dbapi_connection.rollback()
>>> >     441
>>> >     442     def do_commit(self, dbapi_connection):
>>> >
>>> > ProgrammingError: (pyodbc.ProgrammingError) ('42000', '[42000]
>>> > [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]111214;An attempt
>>> > to
>>> > complete a transaction has failed. No corresponding transaction found.
>>> > (111214) (SQLEndTran)')
>>> >
>>> > On Tue, Sep 12, 2017 at 10:52 AM, Mike Bayer <mike...@zzzcomputing.com>
>>> > wrote:
>>> >>
>>> >> On Tue, Sep 12, 2017 at 1:14 PM, dirk.biesinger
>>> >> <dirk.biesin...@gmail.com> wrote:
>>> >> > Mike,
>>> >> >
>>> >> > I'll post two stacks:
>>> >> > the first one is just calling the engine.connect():
>>> >>
>>> >> yup different error than before.
>>> >>
>>> >> Add pool_reset_on_return=None to your create_engine:
>>> >>
>>> >> e = create_engine(...., pool_reset_on_return=None)
>>> >>
>>> >> then try again.
>>> >>
>>> >>
>>> >>
>>> >> > the second one (look for a row of #####) is when calling the
>>> >> > df.to_sql()
>>> >> > function.
>>> >> >
>>> >> > 2017-09-12 17:08:23,572 INFO sqlalchemy.engine.base.Engine SELECT
>>> >> > SERVERPROPERTY('ProductVersion')
>>> >> > 2017-09-12 17:08:23,573 INFO sqlalchemy.engine.base.Engine ()
>>> >> > 2017-09-12 17:08:23,627 INFO sqlalchemy.engine.base.Engine SELECT
>>> >> > schema_name()
>>> >> > 2017-09-12 17:08:23,627 INFO sqlalchemy.engine.base.Engine ()
>>> >> > 2017-09-12 17:08:24,056 INFO sqlalchemy.engine.base.Engine SELECT
>>> >> > CAST('test
>>> >> > plain returns' AS VARCHAR(60)) AS anon_1
>>> >> > 2017-09-12 17:08:24,057 INFO sqlalchemy.engine.base.Engine ()
>>> >> > 2017-09-12 17:08:24,117 INFO sqlalchemy.engine.base.Engine SELECT
>>> >> > CAST('test
>>> >> > unicode returns' AS NVARCHAR(60)) AS anon_1
>>> >> > 2017-09-12 17:08:24,117 INFO sqlalchemy.engine.base.Engine ()
>>> >> >
>>> >> >
>>> >> > ---------------------------------------------------------------------------
>>> >> > Empty                                     Traceback (most recent
>>> >> > call
>>> >> > last)
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1121             wait = use_overflow and self._overflow >=
>>> >> > self._max_overflow
>>> >> > -> 1122             return self._pool.get(wait, self._timeout)
>>> >> >    1123         except sqla_queue.Empty:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/queue.py
>>> >> > in get(self, block, timeout)
>>> >> >     144                 if self._empty():
>>> >> > --> 145                     raise Empty
>>> >> >     146             elif timeout is None:
>>> >> >
>>> >> > Empty:
>>> >> >
>>> >> > During handling of the above exception, another exception occurred:
>>> >> >
>>> >> > ProgrammingError                          Traceback (most recent
>>> >> > call
>>> >> > last)
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in _wrap_pool_connect(self, fn, connection)
>>> >> >    2146         try:
>>> >> > -> 2147             return fn()
>>> >> >    2148         except dialect.dbapi.Error as e:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > unique_connection(self)
>>> >> >     327         """
>>> >> > --> 328         return _ConnectionFairy._checkout(self)
>>> >> >     329
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _checkout(cls, pool, threadconns, fairy)
>>> >> >     765         if not fairy:
>>> >> > --> 766             fairy = _ConnectionRecord.checkout(pool)
>>> >> >     767
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > checkout(cls, pool)
>>> >> >     515     def checkout(cls, pool):
>>> >> > --> 516         rec = pool._do_get()
>>> >> >     517         try:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1137                     with util.safe_reraise():
>>> >> > -> 1138                         self._dec_overflow()
>>> >> >    1139             else:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> >> > in __exit__(self, type_, value, traceback)
>>> >> >      65             if not self.warn_only:
>>> >> > ---> 66                 compat.reraise(exc_type, exc_value, exc_tb)
>>> >> >      67         else:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> >> > in reraise(tp, value, tb, cause)
>>> >> >     186             raise value.with_traceback(tb)
>>> >> > --> 187         raise value
>>> >> >     188
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1134                 try:
>>> >> > -> 1135                     return self._create_connection()
>>> >> >    1136                 except:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _create_connection(self)
>>> >> >     332
>>> >> > --> 333         return _ConnectionRecord(self)
>>> >> >     334
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > __init__(self, pool, connect)
>>> >> >     460         if connect:
>>> >> > --> 461             self.__connect(first_connect_check=True)
>>> >> >     462         self.finalize_callback = deque()
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > __connect(self, first_connect_check)
>>> >> >     660                     for_modify(pool.dispatch).\
>>> >> > --> 661                     exec_once(self.connection, self)
>>> >> >     662             if pool.dispatch.connect:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> >> > in exec_once(self, *args, **kw)
>>> >> >     245                     try:
>>> >> > --> 246                         self(*args, **kw)
>>> >> >     247                     finally:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> >> > in __call__(self, *args, **kw)
>>> >> >     255         for fn in self.listeners:
>>> >> > --> 256             fn(*args, **kw)
>>> >> >     257
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> >> > in go(*arg, **kw)
>>> >> >    1330             once_fn = once.pop()
>>> >> > -> 1331             return once_fn(*arg, **kw)
>>> >> >    1332
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py
>>> >> > in first_connect(dbapi_connection, connection_record)
>>> >> >     180                 c._execution_options = util.immutabledict()
>>> >> > --> 181                 dialect.initialize(c)
>>> >> >     182             event.listen(pool, 'first_connect',
>>> >> > first_connect,
>>> >> > once=True)
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/connectors/pyodbc.py
>>> >> > in initialize(self, connection)
>>> >> >     164         # run other initialization which asks for user name,
>>> >> > etc.
>>> >> > --> 165         super(PyODBCConnector, self).initialize(connection)
>>> >> >     166
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/dialects/mssql/base.py
>>> >> > in initialize(self, connection)
>>> >> >    1741     def initialize(self, connection):
>>> >> > -> 1742         super(MSDialect, self).initialize(connection)
>>> >> >    1743         self._setup_version_attributes()
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> >> > in initialize(self, connection)
>>> >> >     265
>>> >> > --> 266         self.do_rollback(connection.connection)
>>> >> >     267
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> >> > in do_rollback(self, dbapi_connection)
>>> >> >     439     def do_rollback(self, dbapi_connection):
>>> >> > --> 440         dbapi_connection.rollback()
>>> >> >     441
>>> >> >
>>> >> > ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Driver 13 for
>>> >> > SQL
>>> >> > Server][SQL Server]111214;An attempt to complete a transaction has
>>> >> > failed.
>>> >> > No corresponding transaction found. (111214) (SQLEndTran)')
>>> >> >
>>> >> > The above exception was the direct cause of the following exception:
>>> >> >
>>> >> > ProgrammingError                          Traceback (most recent
>>> >> > call
>>> >> > last)
>>> >> > <ipython-input-10-bd43083eb2bb> in <module>()
>>> >> >      16     dbapi_connection.autocommit = True
>>> >> >      17 #cnxn = pyodbc.connect(connection_str)
>>> >> > ---> 18 engn.connect()
>>> >> >      19 #df.to_sql(tbl_server_out, engn, if_exists='append',
>>> >> > index=False)
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in connect(self, **kwargs)
>>> >> >    2089         """
>>> >> >    2090
>>> >> > -> 2091         return self._connection_cls(self, **kwargs)
>>> >> >    2092
>>> >> >    2093     def contextual_connect(self, close_with_result=False,
>>> >> > **kwargs):
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in __init__(self, engine, connection, close_with_result,
>>> >> > _branch_from,
>>> >> > _execution_options, _dispatch, _has_events)
>>> >> >      88         else:
>>> >> >      89             self.__connection = connection \
>>> >> > ---> 90                 if connection is not None else
>>> >> > engine.raw_connection()
>>> >> >      91             self.__transaction = None
>>> >> >      92             self.__savepoint_seq = 0
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in raw_connection(self, _connection)
>>> >> >    2175         """
>>> >> >    2176         return self._wrap_pool_connect(
>>> >> > -> 2177             self.pool.unique_connection, _connection)
>>> >> >    2178
>>> >> >    2179
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in _wrap_pool_connect(self, fn, connection)
>>> >> >    2149             if connection is None:
>>> >> >    2150
>>> >> > Connection._handle_dbapi_exception_noconnection(
>>> >> > -> 2151                     e, dialect, self)
>>> >> >    2152             else:
>>> >> >    2153                 util.reraise(*sys.exc_info())
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in _handle_dbapi_exception_noconnection(cls, e, dialect, engine)
>>> >> >    1463             util.raise_from_cause(
>>> >> >    1464                 sqlalchemy_exception,
>>> >> > -> 1465                 exc_info
>>> >> >    1466             )
>>> >> >    1467         else:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> >> > in raise_from_cause(exception, exc_info)
>>> >> >     201     exc_type, exc_value, exc_tb = exc_info
>>> >> >     202     cause = exc_value if exc_value is not exception else
>>> >> > None
>>> >> > --> 203     reraise(type(exception), exception, tb=exc_tb,
>>> >> > cause=cause)
>>> >> >     204
>>> >> >     205 if py3k:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> >> > in reraise(tp, value, tb, cause)
>>> >> >     184             value.__cause__ = cause
>>> >> >     185         if value.__traceback__ is not tb:
>>> >> > --> 186             raise value.with_traceback(tb)
>>> >> >     187         raise value
>>> >> >     188
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in _wrap_pool_connect(self, fn, connection)
>>> >> >    2145         dialect = self.dialect
>>> >> >    2146         try:
>>> >> > -> 2147             return fn()
>>> >> >    2148         except dialect.dbapi.Error as e:
>>> >> >    2149             if connection is None:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > unique_connection(self)
>>> >> >     326
>>> >> >     327         """
>>> >> > --> 328         return _ConnectionFairy._checkout(self)
>>> >> >     329
>>> >> >     330     def _create_connection(self):
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _checkout(cls, pool, threadconns, fairy)
>>> >> >     764     def _checkout(cls, pool, threadconns=None, fairy=None):
>>> >> >     765         if not fairy:
>>> >> > --> 766             fairy = _ConnectionRecord.checkout(pool)
>>> >> >     767
>>> >> >     768             fairy._pool = pool
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > checkout(cls, pool)
>>> >> >     514     @classmethod
>>> >> >     515     def checkout(cls, pool):
>>> >> > --> 516         rec = pool._do_get()
>>> >> >     517         try:
>>> >> >     518             dbapi_connection = rec.get_connection()
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1136                 except:
>>> >> >    1137                     with util.safe_reraise():
>>> >> > -> 1138                         self._dec_overflow()
>>> >> >    1139             else:
>>> >> >    1140                 return self._do_get()
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> >> > in __exit__(self, type_, value, traceback)
>>> >> >      64             self._exc_info = None   # remove potential
>>> >> > circular
>>> >> > references
>>> >> >      65             if not self.warn_only:
>>> >> > ---> 66                 compat.reraise(exc_type, exc_value, exc_tb)
>>> >> >      67         else:
>>> >> >      68             if not compat.py3k and self._exc_info and
>>> >> > self._exc_info[1]:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> >> > in reraise(tp, value, tb, cause)
>>> >> >     185         if value.__traceback__ is not tb:
>>> >> >     186             raise value.with_traceback(tb)
>>> >> > --> 187         raise value
>>> >> >     188
>>> >> >     189 else:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1133             if self._inc_overflow():
>>> >> >    1134                 try:
>>> >> > -> 1135                     return self._create_connection()
>>> >> >    1136                 except:
>>> >> >    1137                     with util.safe_reraise():
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _create_connection(self)
>>> >> >     331         """Called by subclasses to create a new
>>> >> > ConnectionRecord."""
>>> >> >     332
>>> >> > --> 333         return _ConnectionRecord(self)
>>> >> >     334
>>> >> >     335     def _invalidate(self, connection, exception=None):
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > __init__(self, pool, connect)
>>> >> >     459         self.__pool = pool
>>> >> >     460         if connect:
>>> >> > --> 461             self.__connect(first_connect_check=True)
>>> >> >     462         self.finalize_callback = deque()
>>> >> >     463
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > __connect(self, first_connect_check)
>>> >> >     659                 pool.dispatch.first_connect.\
>>> >> >     660                     for_modify(pool.dispatch).\
>>> >> > --> 661                     exec_once(self.connection, self)
>>> >> >     662             if pool.dispatch.connect:
>>> >> >     663                 pool.dispatch.connect(self.connection, self)
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> >> > in exec_once(self, *args, **kw)
>>> >> >     244                 if not self._exec_once:
>>> >> >     245                     try:
>>> >> > --> 246                         self(*args, **kw)
>>> >> >     247                     finally:
>>> >> >     248                         self._exec_once = True
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> >> > in __call__(self, *args, **kw)
>>> >> >     254             fn(*args, **kw)
>>> >> >     255         for fn in self.listeners:
>>> >> > --> 256             fn(*args, **kw)
>>> >> >     257
>>> >> >     258     def __len__(self):
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> >> > in go(*arg, **kw)
>>> >> >    1329         if once:
>>> >> >    1330             once_fn = once.pop()
>>> >> > -> 1331             return once_fn(*arg, **kw)
>>> >> >    1332
>>> >> >    1333     return go
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py
>>> >> > in first_connect(dbapi_connection, connection_record)
>>> >> >     179                                     _has_events=False)
>>> >> >     180                 c._execution_options = util.immutabledict()
>>> >> > --> 181                 dialect.initialize(c)
>>> >> >     182             event.listen(pool, 'first_connect',
>>> >> > first_connect,
>>> >> > once=True)
>>> >> >     183
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/connectors/pyodbc.py
>>> >> > in initialize(self, connection)
>>> >> >     163
>>> >> >     164         # run other initialization which asks for user name,
>>> >> > etc.
>>> >> > --> 165         super(PyODBCConnector, self).initialize(connection)
>>> >> >     166
>>> >> >     167     def _dbapi_version(self):
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/dialects/mssql/base.py
>>> >> > in initialize(self, connection)
>>> >> >    1740
>>> >> >    1741     def initialize(self, connection):
>>> >> > -> 1742         super(MSDialect, self).initialize(connection)
>>> >> >    1743         self._setup_version_attributes()
>>> >> >    1744
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> >> > in initialize(self, connection)
>>> >> >     264             self._description_decoder =
>>> >> > self.description_encoding =
>>> >> > None
>>> >> >     265
>>> >> > --> 266         self.do_rollback(connection.connection)
>>> >> >     267
>>> >> >     268     def on_connect(self):
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> >> > in do_rollback(self, dbapi_connection)
>>> >> >     438
>>> >> >     439     def do_rollback(self, dbapi_connection):
>>> >> > --> 440         dbapi_connection.rollback()
>>> >> >     441
>>> >> >     442     def do_commit(self, dbapi_connection):
>>> >> >
>>> >> > ProgrammingError: (pyodbc.ProgrammingError) ('42000', '[42000]
>>> >> > [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]111214;An
>>> >> > attempt
>>> >> > to
>>> >> > complete a transaction has failed. No corresponding transaction
>>> >> > found.
>>> >> > (111214) (SQLEndTran)')
>>> >> >
>>> >> > In [ ]:
>>> >> >
>>> >> > #################################################################
>>> >> >
>>> >> >
>>> >> > 2017-09-12 17:12:13,839 INFO sqlalchemy.engine.base.Engine SELECT
>>> >> > SERVERPROPERTY('ProductVersion')
>>> >> > 2017-09-12 17:12:13,840 INFO sqlalchemy.engine.base.Engine ()
>>> >> > 2017-09-12 17:12:13,881 INFO sqlalchemy.engine.base.Engine SELECT
>>> >> > schema_name()
>>> >> > 2017-09-12 17:12:13,882 INFO sqlalchemy.engine.base.Engine ()
>>> >> > 2017-09-12 17:12:14,195 INFO sqlalchemy.engine.base.Engine SELECT
>>> >> > CAST('test
>>> >> > plain returns' AS VARCHAR(60)) AS anon_1
>>> >> > 2017-09-12 17:12:14,196 INFO sqlalchemy.engine.base.Engine ()
>>> >> > 2017-09-12 17:12:14,238 INFO sqlalchemy.engine.base.Engine SELECT
>>> >> > CAST('test
>>> >> > unicode returns' AS NVARCHAR(60)) AS anon_1
>>> >> > 2017-09-12 17:12:14,239 INFO sqlalchemy.engine.base.Engine ()
>>> >> >
>>> >> >
>>> >> > ---------------------------------------------------------------------------
>>> >> > Empty                                     Traceback (most recent
>>> >> > call
>>> >> > last)
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1121             wait = use_overflow and self._overflow >=
>>> >> > self._max_overflow
>>> >> > -> 1122             return self._pool.get(wait, self._timeout)
>>> >> >    1123         except sqla_queue.Empty:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/queue.py
>>> >> > in get(self, block, timeout)
>>> >> >     144                 if self._empty():
>>> >> > --> 145                     raise Empty
>>> >> >     146             elif timeout is None:
>>> >> >
>>> >> > Empty:
>>> >> >
>>> >> > During handling of the above exception, another exception occurred:
>>> >> >
>>> >> > ProgrammingError                          Traceback (most recent
>>> >> > call
>>> >> > last)
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in _wrap_pool_connect(self, fn, connection)
>>> >> >    2146         try:
>>> >> > -> 2147             return fn()
>>> >> >    2148         except dialect.dbapi.Error as e:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > connect(self)
>>> >> >     386         if not self._use_threadlocal:
>>> >> > --> 387             return _ConnectionFairy._checkout(self)
>>> >> >     388
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _checkout(cls, pool, threadconns, fairy)
>>> >> >     765         if not fairy:
>>> >> > --> 766             fairy = _ConnectionRecord.checkout(pool)
>>> >> >     767
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > checkout(cls, pool)
>>> >> >     515     def checkout(cls, pool):
>>> >> > --> 516         rec = pool._do_get()
>>> >> >     517         try:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1137                     with util.safe_reraise():
>>> >> > -> 1138                         self._dec_overflow()
>>> >> >    1139             else:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> >> > in __exit__(self, type_, value, traceback)
>>> >> >      65             if not self.warn_only:
>>> >> > ---> 66                 compat.reraise(exc_type, exc_value, exc_tb)
>>> >> >      67         else:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> >> > in reraise(tp, value, tb, cause)
>>> >> >     186             raise value.with_traceback(tb)
>>> >> > --> 187         raise value
>>> >> >     188
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1134                 try:
>>> >> > -> 1135                     return self._create_connection()
>>> >> >    1136                 except:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _create_connection(self)
>>> >> >     332
>>> >> > --> 333         return _ConnectionRecord(self)
>>> >> >     334
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > __init__(self, pool, connect)
>>> >> >     460         if connect:
>>> >> > --> 461             self.__connect(first_connect_check=True)
>>> >> >     462         self.finalize_callback = deque()
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > __connect(self, first_connect_check)
>>> >> >     660                     for_modify(pool.dispatch).\
>>> >> > --> 661                     exec_once(self.connection, self)
>>> >> >     662             if pool.dispatch.connect:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> >> > in exec_once(self, *args, **kw)
>>> >> >     245                     try:
>>> >> > --> 246                         self(*args, **kw)
>>> >> >     247                     finally:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> >> > in __call__(self, *args, **kw)
>>> >> >     255         for fn in self.listeners:
>>> >> > --> 256             fn(*args, **kw)
>>> >> >     257
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> >> > in go(*arg, **kw)
>>> >> >    1330             once_fn = once.pop()
>>> >> > -> 1331             return once_fn(*arg, **kw)
>>> >> >    1332
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py
>>> >> > in first_connect(dbapi_connection, connection_record)
>>> >> >     180                 c._execution_options = util.immutabledict()
>>> >> > --> 181                 dialect.initialize(c)
>>> >> >     182             event.listen(pool, 'first_connect',
>>> >> > first_connect,
>>> >> > once=True)
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/connectors/pyodbc.py
>>> >> > in initialize(self, connection)
>>> >> >     164         # run other initialization which asks for user name,
>>> >> > etc.
>>> >> > --> 165         super(PyODBCConnector, self).initialize(connection)
>>> >> >     166
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/dialects/mssql/base.py
>>> >> > in initialize(self, connection)
>>> >> >    1741     def initialize(self, connection):
>>> >> > -> 1742         super(MSDialect, self).initialize(connection)
>>> >> >    1743         self._setup_version_attributes()
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> >> > in initialize(self, connection)
>>> >> >     265
>>> >> > --> 266         self.do_rollback(connection.connection)
>>> >> >     267
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> >> > in do_rollback(self, dbapi_connection)
>>> >> >     439     def do_rollback(self, dbapi_connection):
>>> >> > --> 440         dbapi_connection.rollback()
>>> >> >     441
>>> >> >
>>> >> > ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Driver 13 for
>>> >> > SQL
>>> >> > Server][SQL Server]111214;An attempt to complete a transaction has
>>> >> > failed.
>>> >> > No corresponding transaction found. (111214) (SQLEndTran)')
>>> >> >
>>> >> > The above exception was the direct cause of the following exception:
>>> >> >
>>> >> > ProgrammingError                          Traceback (most recent
>>> >> > call
>>> >> > last)
>>> >> > <ipython-input-11-f3810ddb1488> in <module>()
>>> >> >      17 #cnxn = pyodbc.connect(connection_str)
>>> >> >      18 #engn.connect()
>>> >> > ---> 19 df.to_sql(tbl_server_out, engn, if_exists='append',
>>> >> > index=False)
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py
>>> >> > in to_sql(self, name, con, flavor, schema, if_exists, index,
>>> >> > index_label,
>>> >> > chunksize, dtype)
>>> >> >    1343         sql.to_sql(self, name, con, flavor=flavor,
>>> >> > schema=schema,
>>> >> >    1344                    if_exists=if_exists, index=index,
>>> >> > index_label=index_label,
>>> >> > -> 1345                    chunksize=chunksize, dtype=dtype)
>>> >> >    1346
>>> >> >    1347     def to_pickle(self, path, compression='infer'):
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/pandas/io/sql.py
>>> >> > in
>>> >> > to_sql(frame, name, con, flavor, schema, if_exists, index,
>>> >> > index_label,
>>> >> > chunksize, dtype)
>>> >> >     469     pandas_sql.to_sql(frame, name, if_exists=if_exists,
>>> >> > index=index,
>>> >> >     470                       index_label=index_label,
>>> >> > schema=schema,
>>> >> > --> 471                       chunksize=chunksize, dtype=dtype)
>>> >> >     472
>>> >> >     473
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/pandas/io/sql.py
>>> >> > in
>>> >> > to_sql(self, frame, name, if_exists, index, index_label, schema,
>>> >> > chunksize,
>>> >> > dtype)
>>> >> >    1148                          if_exists=if_exists,
>>> >> > index_label=index_label,
>>> >> >    1149                          schema=schema, dtype=dtype)
>>> >> > -> 1150         table.create()
>>> >> >    1151         table.insert(chunksize)
>>> >> >    1152         if (not name.isdigit() and not name.islower()):
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/pandas/io/sql.py
>>> >> > in
>>> >> > create(self)
>>> >> >     584
>>> >> >     585     def create(self):
>>> >> > --> 586         if self.exists():
>>> >> >     587             if self.if_exists == 'fail':
>>> >> >     588                 raise ValueError("Table '%s' already
>>> >> > exists." %
>>> >> > self.name)
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/pandas/io/sql.py
>>> >> > in
>>> >> > exists(self)
>>> >> >     572
>>> >> >     573     def exists(self):
>>> >> > --> 574         return self.pd_sql.has_table(self.name, self.schema)
>>> >> >     575
>>> >> >     576     def sql_schema(self):
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/pandas/io/sql.py
>>> >> > in
>>> >> > has_table(self, name, schema)
>>> >> >    1176             self.connectable.dialect.has_table,
>>> >> >    1177             name,
>>> >> > -> 1178             schema or self.meta.schema,
>>> >> >    1179         )
>>> >> >    1180
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in run_callable(self, callable_, *args, **kwargs)
>>> >> >    2042
>>> >> >    2043         """
>>> >> > -> 2044         with self.contextual_connect() as conn:
>>> >> >    2045             return conn.run_callable(callable_, *args,
>>> >> > **kwargs)
>>> >> >    2046
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in contextual_connect(self, close_with_result, **kwargs)
>>> >> >    2110         return self._connection_cls(
>>> >> >    2111             self,
>>> >> > -> 2112             self._wrap_pool_connect(self.pool.connect,
>>> >> > None),
>>> >> >    2113             close_with_result=close_with_result,
>>> >> >    2114             **kwargs)
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in _wrap_pool_connect(self, fn, connection)
>>> >> >    2149             if connection is None:
>>> >> >    2150
>>> >> > Connection._handle_dbapi_exception_noconnection(
>>> >> > -> 2151                     e, dialect, self)
>>> >> >    2152             else:
>>> >> >    2153                 util.reraise(*sys.exc_info())
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in _handle_dbapi_exception_noconnection(cls, e, dialect, engine)
>>> >> >    1463             util.raise_from_cause(
>>> >> >    1464                 sqlalchemy_exception,
>>> >> > -> 1465                 exc_info
>>> >> >    1466             )
>>> >> >    1467         else:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> >> > in raise_from_cause(exception, exc_info)
>>> >> >     201     exc_type, exc_value, exc_tb = exc_info
>>> >> >     202     cause = exc_value if exc_value is not exception else
>>> >> > None
>>> >> > --> 203     reraise(type(exception), exception, tb=exc_tb,
>>> >> > cause=cause)
>>> >> >     204
>>> >> >     205 if py3k:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> >> > in reraise(tp, value, tb, cause)
>>> >> >     184             value.__cause__ = cause
>>> >> >     185         if value.__traceback__ is not tb:
>>> >> > --> 186             raise value.with_traceback(tb)
>>> >> >     187         raise value
>>> >> >     188
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/base.py
>>> >> > in _wrap_pool_connect(self, fn, connection)
>>> >> >    2145         dialect = self.dialect
>>> >> >    2146         try:
>>> >> > -> 2147             return fn()
>>> >> >    2148         except dialect.dbapi.Error as e:
>>> >> >    2149             if connection is None:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > connect(self)
>>> >> >     385         """
>>> >> >     386         if not self._use_threadlocal:
>>> >> > --> 387             return _ConnectionFairy._checkout(self)
>>> >> >     388
>>> >> >     389         try:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _checkout(cls, pool, threadconns, fairy)
>>> >> >     764     def _checkout(cls, pool, threadconns=None, fairy=None):
>>> >> >     765         if not fairy:
>>> >> > --> 766             fairy = _ConnectionRecord.checkout(pool)
>>> >> >     767
>>> >> >     768             fairy._pool = pool
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > checkout(cls, pool)
>>> >> >     514     @classmethod
>>> >> >     515     def checkout(cls, pool):
>>> >> > --> 516         rec = pool._do_get()
>>> >> >     517         try:
>>> >> >     518             dbapi_connection = rec.get_connection()
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1136                 except:
>>> >> >    1137                     with util.safe_reraise():
>>> >> > -> 1138                         self._dec_overflow()
>>> >> >    1139             else:
>>> >> >    1140                 return self._do_get()
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> >> > in __exit__(self, type_, value, traceback)
>>> >> >      64             self._exc_info = None   # remove potential
>>> >> > circular
>>> >> > references
>>> >> >      65             if not self.warn_only:
>>> >> > ---> 66                 compat.reraise(exc_type, exc_value, exc_tb)
>>> >> >      67         else:
>>> >> >      68             if not compat.py3k and self._exc_info and
>>> >> > self._exc_info[1]:
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/compat.py
>>> >> > in reraise(tp, value, tb, cause)
>>> >> >     185         if value.__traceback__ is not tb:
>>> >> >     186             raise value.with_traceback(tb)
>>> >> > --> 187         raise value
>>> >> >     188
>>> >> >     189 else:
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _do_get(self)
>>> >> >    1133             if self._inc_overflow():
>>> >> >    1134                 try:
>>> >> > -> 1135                     return self._create_connection()
>>> >> >    1136                 except:
>>> >> >    1137                     with util.safe_reraise():
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > _create_connection(self)
>>> >> >     331         """Called by subclasses to create a new
>>> >> > ConnectionRecord."""
>>> >> >     332
>>> >> > --> 333         return _ConnectionRecord(self)
>>> >> >     334
>>> >> >     335     def _invalidate(self, connection, exception=None):
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > __init__(self, pool, connect)
>>> >> >     459         self.__pool = pool
>>> >> >     460         if connect:
>>> >> > --> 461             self.__connect(first_connect_check=True)
>>> >> >     462         self.finalize_callback = deque()
>>> >> >     463
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/pool.py
>>> >> > in
>>> >> > __connect(self, first_connect_check)
>>> >> >     659                 pool.dispatch.first_connect.\
>>> >> >     660                     for_modify(pool.dispatch).\
>>> >> > --> 661                     exec_once(self.connection, self)
>>> >> >     662             if pool.dispatch.connect:
>>> >> >     663                 pool.dispatch.connect(self.connection, self)
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> >> > in exec_once(self, *args, **kw)
>>> >> >     244                 if not self._exec_once:
>>> >> >     245                     try:
>>> >> > --> 246                         self(*args, **kw)
>>> >> >     247                     finally:
>>> >> >     248                         self._exec_once = True
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/event/attr.py
>>> >> > in __call__(self, *args, **kw)
>>> >> >     254             fn(*args, **kw)
>>> >> >     255         for fn in self.listeners:
>>> >> > --> 256             fn(*args, **kw)
>>> >> >     257
>>> >> >     258     def __len__(self):
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py
>>> >> > in go(*arg, **kw)
>>> >> >    1329         if once:
>>> >> >    1330             once_fn = once.pop()
>>> >> > -> 1331             return once_fn(*arg, **kw)
>>> >> >    1332
>>> >> >    1333     return go
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py
>>> >> > in first_connect(dbapi_connection, connection_record)
>>> >> >     179                                     _has_events=False)
>>> >> >     180                 c._execution_options = util.immutabledict()
>>> >> > --> 181                 dialect.initialize(c)
>>> >> >     182             event.listen(pool, 'first_connect',
>>> >> > first_connect,
>>> >> > once=True)
>>> >> >     183
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/connectors/pyodbc.py
>>> >> > in initialize(self, connection)
>>> >> >     163
>>> >> >     164         # run other initialization which asks for user name,
>>> >> > etc.
>>> >> > --> 165         super(PyODBCConnector, self).initialize(connection)
>>> >> >     166
>>> >> >     167     def _dbapi_version(self):
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/dialects/mssql/base.py
>>> >> > in initialize(self, connection)
>>> >> >    1740
>>> >> >    1741     def initialize(self, connection):
>>> >> > -> 1742         super(MSDialect, self).initialize(connection)
>>> >> >    1743         self._setup_version_attributes()
>>> >> >    1744
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> >> > in initialize(self, connection)
>>> >> >     264             self._description_decoder =
>>> >> > self.description_encoding =
>>> >> > None
>>> >> >     265
>>> >> > --> 266         self.do_rollback(connection.connection)
>>> >> >     267
>>> >> >     268     def on_connect(self):
>>> >> >
>>> >> >
>>> >> >
>>> >> > /home/saravji/anaconda3/lib/python3.6/site-packages/sqlalchemy/engine/default.py
>>> >> > in do_rollback(self, dbapi_connection)
>>> >> >     438
>>> >> >     439     def do_rollback(self, dbapi_connection):
>>> >> > --> 440         dbapi_connection.rollback()
>>> >> >     441
>>> >> >     442     def do_commit(self, dbapi_connection):
>>> >> >
>>> >> > ProgrammingError: (pyodbc.ProgrammingError) ('42000', '[42000]
>>> >> > [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]111214;An
>>> >> > attempt
>>> >> > to
>>> >> > complete a transaction has failed. No corresponding transaction
>>> >> > found.
>>> >> > (111214) (SQLEndTran)')
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> > On Tuesday, September 12, 2017 at 6:31:58 AM UTC-7, Mike Bayer
>>> >> > wrote:
>>> >> >>
>>> >> >> On Mon, Sep 11, 2017 at 9:00 PM, Dirk Biesinger
>>> >> >> <dirk.bi...@gmail.com> wrote:
>>> >> >> > Mike,
>>> >> >> >
>>> >> >> > I have upgraded to 1.1.11 (specifically) after posting and have
>>> >> >> > still
>>> >> >> > seen
>>> >> >> > the same error. I also used the event override you posted in
>>> >> >> > issue
>>> >> >> > #3994.
>>> >> >> > Since these experiments I have upgraded to 1.1.13 and the issues
>>> >> >> > persist.
>>> >> >>
>>> >> >> I"m skeptical that either this is the same error and not a
>>> >> >> different
>>> >> >> one, or this is still the older version of the code somehow.
>>> >> >>
>>> >> >> Can you please provide the complete stack trace?   no need for it
>>> >> >> to
>>> >> >> be an attachment.
>>> >> >>
>>> >> >> >
>>> >> >> > Unfortunately I can't give you permission to our database
>>> >> >> > instance
>>> >> >> > (customer
>>> >> >> > policies) but am able to cooperate as much as possible.
>>> >> >> > Like said in my post, I need to write multiple pandas dataframes
>>> >> >> > with
>>> >> >> > millions of rows. Not looking really forward to doing this with
>>> >> >> > my
>>> >> >> > own
>>> >> >> > function. ;-)
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >> > Dirk Biesinger
>>> >> >> >
>>> >> >> > dirk.bi...@gmail.com  |  206.349.9769
>>> >> >> >
>>> >> >> > "Simplicity is the Mastery of Complexity"
>>> >> >> >
>>> >> >> > On Mon, Sep 11, 2017 at 4:45 PM, Mike Bayer
>>> >> >> > <mik...@zzzcomputing.com>
>>> >> >> > wrote:
>>> >> >> >>
>>> >> >> >> On Mon, Sep 11, 2017 at 6:34 PM, dirk.biesinger
>>> >> >> >> <dirk.bi...@gmail.com> wrote:
>>> >> >> >> > I am encountering errors when trying to use the pd.to_sql
>>> >> >> >> > function
>>> >> >> >> > to
>>> >> >> >> > write
>>> >> >> >> > a dataframe to MS SQL Data Warehouse.
>>> >> >> >> > The connection works when NOT using sqlalchemy engines.
>>> >> >> >> > I can read dataframes as well as row-by-row via select
>>> >> >> >> > statements
>>> >> >> >> > when I
>>> >> >> >> > use
>>> >> >> >> > pyodbc connections
>>> >> >> >> > I can write data via insert statements (as well as delete
>>> >> >> >> > data)
>>> >> >> >> > when
>>> >> >> >> > using
>>> >> >> >> > pyodbc.
>>> >> >> >> > However, when I try to connect using a sqlalchemy engine I run
>>> >> >> >> > into a
>>> >> >> >> > string
>>> >> >> >> > of error messages starting with:
>>> >> >> >> >
>>> >> >> >> > ProgrammingError: (pyodbc.ProgrammingError) ('42000', "[42000]
>>> >> >> >> > [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Catalog
>>> >> >> >> > view
>>> >> >> >> > 'dm_exec_sessions' is not supported in this version. (104385)
>>> >> >> >> > (SQLExecDirectW)")
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> > I have searched online, and this exact error seems to have
>>> >> >> >> > been
>>> >> >> >> > reported
>>> >> >> >> > /
>>> >> >> >> > evaluated in May of this year as issue #3994:
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> > https://bitbucket.org/zzzeek/sqlalchemy/issues/3994/azure-sql-datawarehouse-basic
>>> >> >> >>
>>> >> >> >> the issue originally reported there is the one you are having,
>>> >> >> >> it
>>> >> >> >> was
>>> >> >> >> resolved as of 1.1.11.   I have closed the issue as I would need
>>> >> >> >> new
>>> >> >> >> issues opened to deal with the subsequent issues that user was
>>> >> >> >> having.
>>> >> >> >>    If you upgrade to 1.1.11, you should no longer receive an
>>> >> >> >> error
>>> >> >> >> about dm_exec_sessions because this error is caught and the next
>>> >> >> >> view,
>>> >> >> >> sys.dm_pdw_nodes_exec_sessions, is used.   There are likely
>>> >> >> >> problems
>>> >> >> >> beyond that error message but they should not be that message.
>>> >> >> >> please open new issues to describe these error messages and keep
>>> >> >> >> in
>>> >> >> >> mind it is unlikely I can fix them unless someone gives me
>>> >> >> >> access to
>>> >> >> >> this database.
>>> >> >> >>
>>> >> >> >>
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> > I could not find a solution to this, and I'd really dislike to
>>> >> >> >> > do
>>> >> >> >> > a
>>> >> >> >> > line-wise or blob insert statement (I'm working with multiple
>>> >> >> >> > datasets
>>> >> >> >> > that
>>> >> >> >> > each has a few million rows, so execution time is a
>>> >> >> >> > consideration,
>>> >> >> >> > although
>>> >> >> >> > the result sets I'm getting are more like in the 100k lines
>>> >> >> >> > area
>>> >> >> >> > each.)
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> > I get the same error messages even when I replace the
>>> >> >> >> > pd.to_sql
>>> >> >> >> > command
>>> >> >> >> > with
>>> >> >> >> > a simple engine.connect()
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> > Enclosed my installed packages (packages.list)
>>> >> >> >> >
>>> >> >> >> > Enclosed the full traceback (traceback.txt)
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> > This is the code I'm using:
>>> >> >> >> >
>>> >> >> >> > connection_string =
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> > "mssql+pyodbc://<username>:<password>@<sqlhost>.database.windows.net:<port>/<database>?driver=ODBC+Driver+13+for+SQL+Server"
>>> >> >> >> > engn = sqlalchemy.engine.create_engine(connection_string,
>>> >> >> >> > echo=True)
>>> >> >> >> > engn.connect()
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> > I'm very well aware that MS SQL DataWarehouse behaves a bit
>>> >> >> >> > different,
>>> >> >> >> > so
>>> >> >> >> > I'm open for some experimenting to get this issue narrowed
>>> >> >> >> > down.
>>> >> >> >> >
>>> >> >> >> > In case it matters: I'm running an ubuntu 16.04 VM on azure
>>> >> >> >> > with
>>> >> >> >> > jupyter
>>> >> >> >> > notebook server and python 3.6.1.
>>> >> >> >> >
>>> >> >> >> > Best,
>>> >> >> >> >
>>> >> >> >> > DB
>>> >> >> >> >
>>> >> >> >> > --
>>> >> >> >> > SQLAlchemy -
>>> >> >> >> > The Python SQL Toolkit and Object Relational Mapper
>>> >> >> >> >
>>> >> >> >> > http://www.sqlalchemy.org/
>>> >> >> >> >
>>> >> >> >> > To post example code, please provide an MCVE: Minimal,
>>> >> >> >> > Complete,
>>> >> >> >> > and
>>> >> >> >> > Verifiable Example. See http://stackoverflow.com/help/mcve for
>>> >> >> >> > a
>>> >> >> >> > full
>>> >> >> >> > description.
>>> >> >> >> > ---
>>> >> >> >> > You received this message because you are subscribed to the
>>> >> >> >> > Google
>>> >> >> >> > Groups
>>> >> >> >> > "sqlalchemy" group.
>>> >> >> >> > To unsubscribe from this group and stop receiving emails from
>>> >> >> >> > it,
>>> >> >> >> > send
>>> >> >> >> > an
>>> >> >> >> > email to sqlalchemy+...@googlegroups.com.
>>> >> >> >> > To post to this group, send email to
>>> >> >> >> > sqlal...@googlegroups.com.
>>> >> >> >> > Visit this group at
>>> >> >> >> > https://groups.google.com/group/sqlalchemy.
>>> >> >> >> > For more options, visit https://groups.google.com/d/optout.
>>> >> >> >>
>>> >> >> >> --
>>> >> >> >> SQLAlchemy -
>>> >> >> >> The Python SQL Toolkit and Object Relational Mapper
>>> >> >> >>
>>> >> >> >> http://www.sqlalchemy.org/
>>> >> >> >>
>>> >> >> >> To post example code, please provide an MCVE: Minimal, Complete,
>>> >> >> >> and
>>> >> >> >> Verifiable Example.  See  http://stackoverflow.com/help/mcve for
>>> >> >> >> a
>>> >> >> >> full
>>> >> >> >> description.
>>> >> >> >> ---
>>> >> >> >> You received this message because you are subscribed to the
>>> >> >> >> Google
>>> >> >> >> Groups
>>> >> >> >> "sqlalchemy" group.
>>> >> >> >> To unsubscribe from this group and stop receiving emails from
>>> >> >> >> it,
>>> >> >> >> send
>>> >> >> >> an
>>> >> >> >> email to sqlalchemy+...@googlegroups.com.
>>> >> >> >> To post to this group, send email to sqlal...@googlegroups.com.
>>> >> >> >> Visit this group at https://groups.google.com/group/sqlalchemy.
>>> >> >> >> For more options, visit https://groups.google.com/d/optout.
>>> >> >> >
>>> >> >> >
>>> >> >> > --
>>> >> >> > SQLAlchemy -
>>> >> >> > The Python SQL Toolkit and Object Relational Mapper
>>> >> >> >
>>> >> >> > http://www.sqlalchemy.org/
>>> >> >> >
>>> >> >> > To post example code, please provide an MCVE: Minimal, Complete,
>>> >> >> > and
>>> >> >> > Verifiable Example. See http://stackoverflow.com/help/mcve for a
>>> >> >> > full
>>> >> >> > description.
>>> >> >> > ---
>>> >> >> > You received this message because you are subscribed to the
>>> >> >> > Google
>>> >> >> > Groups
>>> >> >> > "sqlalchemy" group.
>>> >> >> > To unsubscribe from this group and stop receiving emails from it,
>>> >> >> > send
>>> >> >> > an
>>> >> >> > email to sqlalchemy+...@googlegroups.com.
>>> >> >> > To post to this group, send email to sqlal...@googlegroups.com.
>>> >> >> > Visit this group at https://groups.google.com/group/sqlalchemy.
>>> >> >> > For more options, visit https://groups.google.com/d/optout.
>>> >> >
>>> >> > --
>>> >> > SQLAlchemy -
>>> >> > The Python SQL Toolkit and Object Relational Mapper
>>> >> >
>>> >> > http://www.sqlalchemy.org/
>>> >> >
>>> >> > To post example code, please provide an MCVE: Minimal, Complete, and
>>> >> > Verifiable Example. See http://stackoverflow.com/help/mcve for a
>>> >> > full
>>> >> > description.
>>> >> > ---
>>> >> > You received this message because you are subscribed to the Google
>>> >> > Groups
>>> >> > "sqlalchemy" group.
>>> >> > To unsubscribe from this group and stop receiving emails from it,
>>> >> > send
>>> >> > an
>>> >> > email to sqlalchemy+unsubscr...@googlegroups.com.
>>> >> > To post to this group, send email to sqlalchemy@googlegroups.com.
>>> >> > Visit this group at https://groups.google.com/group/sqlalchemy.
>>> >> > For more options, visit https://groups.google.com/d/optout.
>>> >>
>>> >> --
>>> >> SQLAlchemy -
>>> >> The Python SQL Toolkit and Object Relational Mapper
>>> >>
>>> >> http://www.sqlalchemy.org/
>>> >>
>>> >> To post example code, please provide an MCVE: Minimal, Complete, and
>>> >> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a
>>> >> full
>>> >> description.
>>> >> ---
>>> >> You received this message because you are subscribed to the Google
>>> >> Groups
>>> >> "sqlalchemy" group.
>>> >> To unsubscribe from this group and stop receiving emails from it, send
>>> >> an
>>> >> email to sqlalchemy+unsubscr...@googlegroups.com.
>>> >> To post to this group, send email to sqlalchemy@googlegroups.com.
>>> >> Visit this group at https://groups.google.com/group/sqlalchemy.
>>> >> For more options, visit https://groups.google.com/d/optout.
>>> >
>>> >
>>> > --
>>> > SQLAlchemy -
>>> > The Python SQL Toolkit and Object Relational Mapper
>>> >
>>> > http://www.sqlalchemy.org/
>>> >
>>> > To post example code, please provide an MCVE: Minimal, Complete, and
>>> > Verifiable Example. See http://stackoverflow.com/help/mcve for a full
>>> > description.
>>> > ---
>>> > You received this message because you are subscribed to the Google
>>> > Groups
>>> > "sqlalchemy" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send
>>> > an
>>> > email to sqlalchemy+unsubscr...@googlegroups.com.
>>> > To post to this group, send email to sqlalchemy@googlegroups.com.
>>> > Visit this group at https://groups.google.com/group/sqlalchemy.
>>> > For more options, visit https://groups.google.com/d/optout.
>>>
>>> --
>>> SQLAlchemy -
>>> The Python SQL Toolkit and Object Relational Mapper
>>>
>>> http://www.sqlalchemy.org/
>>>
>>> To post example code, please provide an MCVE: Minimal, Complete, and
>>> Verifiable Example.  See  http://stackoverflow.com/help/mcve for a full
>>> description.
>>> ---
>>> You received this message because you are subscribed to the Google Groups
>>> "sqlalchemy" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to sqlalchemy+unsubscr...@googlegroups.com.
>>> To post to this group, send email to sqlalchemy@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/sqlalchemy.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>
> --
> SQLAlchemy -
> The Python SQL Toolkit and Object Relational Mapper
>
> http://www.sqlalchemy.org/
>
> To post example code, please provide an MCVE: Minimal, Complete, and
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> description.
> ---
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to