What i think is, in Cache Monitor Database there is no such thing as: SELECT
CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)
Not like in a MSSQL Server.
Im looking for ways to get the SERVERPROPERTY ProductVersion in Cache
Monitor Database. Cant find how to query that in a Cache Monitor Database
Am Donnerstag, 29. März 2018 15:31:02 UTC+2 schrieb Mike Bayer:
>
> missing a dot:
>
> import pyodbc
>
> pyodbc_connection = pyodbc.connect(...)
>
> print(pyodbc_connection.getinfo(pyodbc.SQL_DBMS_VER))
>
>
>
>
> On Thu, Mar 29, 2018 at 9:29 AM, Mike Bayer <[email protected]
> <javascript:>> wrote:
> >> I render the code in pyodbc.py and add the pass to the except clause
> but it doesnt help getting the same error message with the str and int like
> before.
> >
> > OK that may suggest that it is falling back to the base pyodbc version
> > management, so here is the updated patch:
> >
> > diff --git a/lib/sqlalchemy/connectors/pyodbc.py
> > b/lib/sqlalchemy/connectors/pyodbc.py
> > index d8c3fcec4..ae2b740b0 100644
> > --- a/lib/sqlalchemy/connectors/pyodbc.py
> > +++ b/lib/sqlalchemy/connectors/pyodbc.py
> > @@ -145,7 +145,7 @@ class PyODBCConnector(Connector):
> > try:
> > version.append(int(n))
> > except ValueError:
> > - version.append(n)
> > + pass
> > return tuple(version)
> >
> > def set_isolation_level(self, connection, level):
> > diff --git a/lib/sqlalchemy/dialects/mssql/pyodbc.py
> > b/lib/sqlalchemy/dialects/mssql/pyodbc.py
> > index 14e8ae838..30b8b8b50 100644
> > --- a/lib/sqlalchemy/dialects/mssql/pyodbc.py
> > +++ b/lib/sqlalchemy/dialects/mssql/pyodbc.py
> > @@ -291,7 +291,7 @@ class MSDialect_pyodbc(PyODBCConnector, MSDialect):
> > try:
> > version.append(int(n))
> > except ValueError:
> > - version.append(n)
> > + pass
> > return tuple(version)
> >
> > def is_disconnect(self, e, connection, cursor):
> >
> >
> > can you connect with pyodbc directly, then run this query:
> >
> > cursor.execute("SELECT CAST(SERVERPROPERTY('ProductVersion') AS
> VARCHAR)")
> > print(cursor.fetchone())
> >
> > it may raise an exception, send me that if so, then run this:
> >
> >
> > print(pyodbc_connectiongetinfo(pyodbc.SQL_DBMS_VER)
> >
> > so again I can see what we are getting
> >
> >
> > On Thu, Mar 29, 2018 at 9:18 AM, Maki <[email protected]
> <javascript:>> wrote:
> >> Hi Mike!
> >>
> >> I think there's a misunderstanding. Im trying to connect to a
> InterSystem
> >> Cache Database thru ODBC (Datasource) but my MS SQL Server Management
> Studio
> >> has this version (12.0.5207.0)
> >>
> >> I render the code in pyodbc.py and add the pass to the except clause
> but it
> >> doesnt help getting the same error message with the str and int like
> before.
> >>
> >>
> >> Am Donnerstag, 29. März 2018 15:01:46 UTC+2 schrieb Mike Bayer:
> >>>
> >>> Hi -
> >>>
> >>> unfortunately the stack trace indicates a bug in SQLAlchemy in that it
> >>> is not interpreting your database's version string correctly.
> >>>
> >>> can you please provide me with the output of:
> >>>
> >>> SELECT CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)
> >>>
> >>>
> >>> Additionally, the likely cause of your issue can be worked around at
> >>> the moment with this patch:
> >>>
> >>> diff --git a/lib/sqlalchemy/dialects/mssql/pyodbc.py
> >>> b/lib/sqlalchemy/dialects/mssql/pyodbc.py
> >>> index 14e8ae838..30b8b8b50 100644
> >>> --- a/lib/sqlalchemy/dialects/mssql/pyodbc.py
> >>> +++ b/lib/sqlalchemy/dialects/mssql/pyodbc.py
> >>> @@ -291,7 +291,7 @@ class MSDialect_pyodbc(PyODBCConnector,
> MSDialect):
> >>> try:
> >>> version.append(int(n))
> >>> except ValueError:
> >>> - version.append(n)
> >>> + pass
> >>> return tuple(version)
> >>>
> >>> def is_disconnect(self, e, connection, cursor):
> >>>
> >>>
> >>>
> >>>
> https://bitbucket.org/zzzeek/sqlalchemy/issues/4227/sql-server-pyodbc-allows-non-int-tokens-in
>
> >>> is added.
> >>>
> >>> I need to see your version string so I can understand what tokens I
> >>> need to weed out, thanks!
> >>>
> >>>
> >>>
> >>> On Thu, Mar 29, 2018 at 7:03 AM, Maki <[email protected]> wrote:
> >>> > Im on a Windows OS and Python 3.6.4 and im stucked with a problem
> trying
> >>> > to
> >>> > connect to a DSN Datasource using SQLAlchemy 1.2.5
> >>> >
> >>> > Using pyodbc to connect to the DSN Datasource works great but using
> >>> > SQLAlchemy create_engine method:
> >>> >
> >>> > engine = create_engine("mssql+pyodbc://user:pass@mydsn", echo=True)
> >>> >
> >>> > get me the following error:
> >>> >
> >>> > File "mentrix.py", line 28, in <module>
> >>> > cnxn = engine.connect()
> >>> > TypeError: '<' not supported between instances of 'str' and 'int'
> >>> >
> >>> > Can anyone point me on the right direction. Like ive said im trying
> to
> >>> > use
> >>> > SQLAlchemy to connect to a InterSystem ODBC35 DSN Datasource.
> >>> >
> >>> > Thanks in advanced!
> >>> >
> >>> > Code:
> >>> >
> >>> > from sqlalchemy import create_engine
> >>> > import pyodbc
> >>> >
> >>> > engine = create_engine("mssql+pyodbc://user:pass@mydsn", echo=True)
> >>> > cnxn = engine.connect()
> >>> > rows = cnxn.execute("SELECT name FROM sys.tables").fetchall()
> >>> > print(rows)
> >>> >
> >>> > Full traceback:
> >>> >
> >>> > 2018-03-29 11:33:44,631 INFO sqlalchemy.engine.base.Engine SELECT
> >>> > CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)
> >>> > 2018-03-29 11:33:44,631 INFO sqlalchemy.engine.base.Engine ()
> >>> > Traceback (most recent call last):
> >>> > File "mentrix.py", line 28, in <module>
> >>> > cnxn = engine.connect()
> >>> > File
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\engine\base.py",
> >>> > line 2102, in connect
> >>> > return self._connection_cls(self, **kwargs)
> >>> > File
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\engine\base.py",
> >>> > line 90, in __init__
> >>> > if connection is not None else engine.raw_connection()
> >>> > File
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\engine\base.py",
> >>> > line 2188, in raw_connection
> >>> > self.pool.unique_connection, _connection)
> >>> > File
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\engine\base.py",
> >>> > line 2158, in _wrap_pool_connect
> >>> > return fn()
> >>> > File
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\pool.py",
> >>> > line 345, in unique_connection
> >>> > return _ConnectionFairy._checkout(self)
> >>> > File
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\pool.py",
> >>> > line 784, in _checkout
> >>> > fairy = _ConnectionRecord.checkout(pool)
> >>> > File
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\pool.py",
> >>> > line 532, in checkout
> >>> > rec = pool._do_get()
> >>> > File
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\pool.py",
> >>> > line 1189, in _do_get
> >>> > self._dec_overflow()
> >>> > File
> >>> >
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\util\langhelpers.py",
>
> >>> > line 66, in __exit__
> >>> > compat.reraise(exc_type, exc_value, exc_tb)
> >>> > File
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\util\compat.py",
> >>> > line 187, in reraise
> >>> > raise value
> >>> > File
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\pool.py",
> >>> > line 1186, in _do_get
> >>> > return self._create_connection()
> >>> > File
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\pool.py",
> >>> > line 350, in _create_connection
> >>> > return _ConnectionRecord(self)
> >>> > File
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\pool.py",
> >>> > line 477, in __init__
> >>> > self.__connect(first_connect_check=True)
> >>> > File
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\pool.py",
> >>> > line 677, in __connect
> >>> > exec_once(self.connection, self)
> >>> > File
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\event\attr.py",
> >>> > line
> >>> > 274, in exec_once
> >>> > self(*args, **kw)
> >>> > File
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\event\attr.py",
> >>> > line
> >>> > 284, in __call__
> >>> > fn(*args, **kw)
> >>> > File
> >>> >
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\util\langhelpers.py",
>
> >>> > line 1334, in go
> >>> > return once_fn(*arg, **kw)
> >>> > File
> >>> >
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\engine\strategies.py",
>
>
> >>> > line 183, in first_connect
> >>> > dialect.initialize(c)
> >>> > File
> >>> >
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\dialects\mssql\base.py",
>
>
> >>> > line 1931, in initialize
> >>> > super(MSDialect, self).initialize(connection)
> >>> > File
> >>> >
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\engine\default.py",
> >>> > line 267, in initialize
> >>> > self._get_default_schema_name(connection)
> >>> > File
> >>> >
> >>> >
> "C:\Users\m.m\Envs\mentrix\lib\site-packages\sqlalchemy\dialects\mssql\base.py",
>
>
> >>> > line 1958, in _get_default_schema_name
> >>> > if self.server_version_info < MS_2005_VERSION:
> >>> > TypeError: '<' not supported between instances of 'str' and 'int'
> >>> >
> >>> > --
> >>> > 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 [email protected].
> >>> > To post to this group, send email to [email protected].
> >>> > 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 [email protected] <javascript:>.
> >> To post to this group, send email to [email protected]
> <javascript:>.
> >> 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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.