On Tue, Sep 12, 2017 at 5:03 PM, Dirk Biesinger
<dirk.biesin...@gmail.com> wrote:
>
>
> Here's the new error stack:

no this is wrong:

/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


do_rollback() is overridden with the patch, can't be called in
default.py.   Please make sure the patch applies an empty
do_rollback() method to MSDialect_pyodbc.   you're definitely using
"mssql+pyodbc://" style URL right?





>
> 2017-09-12 21:01:39,990 INFO sqlalchemy.engine.base.Engine SELECT
> SERVERPROPERTY('ProductVersion')
> 2017-09-12 21:01:39,991 INFO sqlalchemy.engine.base.Engine ()
> 2017-09-12 21:01:40,032 INFO sqlalchemy.engine.base.Engine SELECT
> schema_name()
> 2017-09-12 21:01:40,033 INFO sqlalchemy.engine.base.Engine ()
> 2017-09-12 21:01:40,422 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
> plain returns' AS VARCHAR(60)) AS anon_1
> 2017-09-12 21:01:40,423 INFO sqlalchemy.engine.base.Engine ()
> 2017-09-12 21:01:40,463 INFO sqlalchemy.engine.base.Engine SELECT CAST('test
> unicode returns' AS NVARCHAR(60)) AS anon_1
> 2017-09-12 21:01:40,465 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-17-4e94acaff5d8> 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 1:33 PM, Mike Bayer <mike...@zzzcomputing.com>
> wrote:
>>
>> 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.
>
>
> --
> 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