Thanks for the insights

On Tue, Jan 9, 2018 at 10:23 PM Mike Bayer <mike...@zzzcomputing.com> wrote:

> On Tue, Jan 9, 2018 at 8:45 PM, Russ Wilson <rpwil...@gmail.com> wrote:
> > So i loaded and tested the mmsql dialect and it gave the same results. It
> > returns a list of pyodbc.Row
> >
> > from sqlalchemy import Column, Integer, String
> > from sqlalchemy.ext.declarative import declarative_base
> > from sqlalchemy import create_engine
> > from sqlalchemy import Table, Column, Integer, String, MetaData,
> ForeignKey
> > from sqlalchemy import inspect
> > from sqlalchemy.dialects import registry
> >
> >
> > engine =
> > create_engine("mssql+pyodbc://MYUSER:MYPASSWORD@IP
> :1433/corn?driver=FreeTDS")
> > connection = engine.raw_connection()
> > try:
> >     cursor = connection.cursor()
> >     cursor.execute("SELECT *  FROM ADV.MYTABLE")
> >     results_one = cursor.fetchmany(100)
> >     for row in results_one:
> >         print(type(row))
> >
> >     cursor.close()
> > finally:
> >     connection.close()
>
> When you use raw_connection(), you are stating that you would like to
> use a raw DBAPI connection object, and you are no longer using the
> SQLAlchemy dialect.   You are using the plain pyodbc cursor directly,
> which is usually not necessary unless you need to work with stored
> procedures or special cursor methods.
>
> Using SQLAlchemy normally, your code above would be:
>
> with engine.connect() as conn:
>     result = conn.execute("SELECT * FROM ADV.MYTABLE")
>
> result is then a ResultProxy object and returns RowProxy objects when
> you call fetchone(), fetchmany(), and fetchall().    RowProxy then
> acts like a tuple.
>
>
>
>
> >
> > On Tuesday, January 9, 2018 at 4:38:54 PM UTC-6, Mike Bayer wrote:
> >>
> >> There's the README at
> >> https://github.com/zzzeek/sqlalchemy/blob/master/README.dialects.rst
> which
> >> also includes some links to an example dialect.
> >>
> >> On Jan 9, 2018 12:35 PM, "Russ Wilson" <rpwi...@gmail.com> wrote:
> >>
> >> Is there a good doc that covered at at min needs to be extended to
> create
> >> a dialect?
> >>
> >> On Mon, Jan 8, 2018 at 3:15 PM Mike Bayer <mik...@zzzcomputing.com>
> wrote:
> >>>
> >>> On Sun, Jan 7, 2018 at 9:07 PM, Russ Wilson <rpwi...@gmail.com> wrote:
> >>> > I noticed if you use the cursor.fetchmany it returns the pyodbc
> types.
> >>> > Is
> >>> > this an issue with the dialect?  if you use the connection execute
> you
> >>> > are
> >>> > correct it returns a resultrow. Thanks for the help.
> >>> >
> >>> > cursor = connection.cursor()
> >>> >     cursor.execute("SELECT *  FROM mytable")
> >>> >     results_one = cursor.fetchmany(100)
> >>> >     for row in results_one:
> >>> >         print(type(row))
> >>>
> >>> It's not an issue, when you call SQLAlchemy's fetchmany(), it is
> >>> internally retrieving the pyobc row objects and converting them to
> >>> ResultRow objects.
> >>>
> >>> As I mentioned before, we have three dialects that use Pyodbc and two
> >>> are production quality, same API, same row objects, etc.
> >>>
> >>>
> >>>
> >>> >
> >>> >
> >>> > On Sunday, January 7, 2018 at 12:01:29 PM UTC-6, Mike Bayer wrote:
> >>> >>
> >>> >>
> >>> >>
> >>> >> On Jan 7, 2018 11:29 AM, "Russ Wilson" <rpwi...@gmail.com> wrote:
> >>> >>
> >>> >> When I attempt to create a panda dataframe from the results it
> throws
> >>> >> this
> >>> >> error "Shape of passed values is (1, 100), indices imply (9, 100)"
> >>> >> because
> >>> >> it is seeing the results as 1 column vs a list of columns.  Ill
> take a
> >>> >> look
> >>> >> at the SQL Server one.   Thanks
> >>> >>
> >>> >>
> >>> >> That has nothing to do with a SQLAlchemy dialect because all
> >>> >> SQLAlchemy
> >>> >> result sets come back as a ResultSet object and every row is a
> >>> >> ResultRow.
> >>> >> The pyodbc internals are not exposed.
> >>> >>
> >>> >>
> >>> >>
> >>> >> pd.DataFrame(data=data, columns=column_names)
> >>> >>
> >>> >>
> >>> >>
> >>> >> On Saturday, January 6, 2018 at 11:57:57 PM UTC-6, Mike Bayer wrote:
> >>> >>>
> >>> >>> pyodbc.Row acts like a tuple so there is no special conversion
> >>> >>> needed.
> >>> >>>
> >>> >>> SQLAlchemy has three pyodbc dialects, for SQL Server (very stable),
> >>> >>> MySQL (sorta works), and Sybase (probably doesn't work), but you
> can
> >>> >>> use the first two as examples for the basics.   They base off of
> the
> >>> >>> PyODBCConnector in connectors/pyodbc.py.
> >>> >>>
> >>> >>>
> >>> >>> On Sun, Jan 7, 2018 at 12:40 AM, Russ Wilson <rpwi...@gmail.com>
> >>> >>> wrote:
> >>> >>> >
> >>> >>> > I was attempting to create a new dialect but hit and issue.
> pyodbc
> >>> >>> > is
> >>> >>> > returning a list of pyodbc.Row.  Is there a method i should be
> >>> >>> > implementing
> >>> >>> > to convert the list to a list of tuples.
> >>> >>> >
> >>> >>> > Thanks
> >>> >>> >
> >>> >>> > --
> >>> >>> > 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 a topic in the
> >>> Google Groups "sqlalchemy" group.
> >>> To unsubscribe from this topic, visit
> >>> https://groups.google.com/d/topic/sqlalchemy/wtLwkQr2xSY/unsubscribe.
> >>> To unsubscribe from this group and all its topics, 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 a topic in the
> Google Groups "sqlalchemy" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sqlalchemy/wtLwkQr2xSY/unsubscribe.
> To unsubscribe from this group and all its topics, 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