create_engine() does not directly accept a raw ODBC connection string. You need to use the URL.create(…, query={"odbc_connect": …) approach that you were using in your earlier examples, except that now you will be supplying a valid connection string for the ODBC driver that you are using.
On Thursday, April 21, 2022 at 7:04:18 AM UTC-6 Trainer Go wrote: > > Hello Gord Thompson, > Yeah i found this dialect documentation and its working with the pyodbc > connection. and my query works with pd.read_sql() but i want to test it > with sqlalchemy cause im getting an warning that i should use sqlalchemy. > But thats what i wanted to do. > > cnxn = pyodbc.connect('DRIVER={Adaptive Server Anywhere > 7.0};Commlinks=tcpip{ip=*MyIpAdresse*;Port=*MyPort*};ENG=*MyDBName*;UID= > *MyUserID*;PWD=*MyPassword*') > > this works fine but atm cant handle to connect my db with sqlalchemy: > > engine = create_engine('DRIVER={Adaptive Server Anywhere > 7.0};Commlinks=tcpip{ip=*IP*;Port=*Port*};ENG=*Database*;UID=*ID*;PWD= > *Password*') > cnxn = engine.connect() > > Error: > Traceback (most recent call last): > File "<string>", line 2, in create_engine > File > "C:\Users\User\AppData\Local\Programs\Python\Python39-32\lib\site-packages\sqlalchemy\util\deprecations.py", > > line 309, in warned > return fn(*args, **kwargs) > File > "C:\Users\User\AppData\Local\Programs\Python\Python39-32\lib\site-packages\sqlalchemy\engine\create.py", > > line 530, in create_engine > u = _url.make_url(url) > File > "C:\Users\User\AppData\Local\Programs\Python\Python39-32\lib\site-packages\sqlalchemy\engine\url.py", > > line 731, in make_url > return _parse_rfc1738_args(name_or_url) > File > "C:\Users\User\AppData\Local\Programs\Python\Python39-32\lib\site-packages\sqlalchemy\engine\url.py", > > line 792, in _parse_rfc1738_args > raise exc.ArgumentError( > sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string > 'DRIVER={Adaptive Server Anywhere 7.0};Commlinks=tcpip{ip=*IP*;Port=*Port* > };ENG=*Database*;UID=*ID*;PWD=*Password*' > > Thanks in advance > > Gord Thompson schrieb am Donnerstag, 21. April 2022 um 14:37:00 UTC+2: > >> Perhaps this might help: >> >> https://www.connectionstrings.com/asa-odbc/ >> >> Note also that the sqlalchemy-sybase dialect has not been tested with the >> "Adaptive Server Anywhere" driver. If its behaviour differs significantly >> from the "SAP ASE ODBC driver" then you may have issues with that. >> >> On Thursday, April 21, 2022 at 6:29:19 AM UTC-6 Gord Thompson wrote: >> >>> > Verbindung mit dem Datenbankserver unmöglich: Datenbankserver läuft >>> nicht >>> >>> "Unable to connect to database server: Database server is not running" >>> >>> > Ungültiges Attribut für Verbindungszeichenfolge >>> >>> "Invalid connection string attribute" >>> >>> Check the documentation for your ODBC driver to verify that you are >>> using the correct attribute names in your connection string. >>> >>> On Thursday, April 21, 2022 at 2:21:36 AM UTC-6 Trainer Go wrote: >>> >>>> Now im getting this error: >>>> >>>> pyodbc.OperationalError: ('08001', '[08001] [Sybase][ODBC >>>> Driver][Adaptive Server Anywhere]Verbindung mit dem Datenbankserver >>>> unmöglich: Datenbankserver läuft nicht (-100) (SQLDriverConnect); [08001] >>>> [Sybase][ODBC Driver]Ungültiges Attribut für Verbindungszeichenfolge (0); >>>> [08001] [Sybase][ODBC Driver]Ungültiges Attribut für >>>> Verbindungszeichenfolge (0); [08001] [Sybase][ODBC Driver]Ungültiges >>>> Attribut für Verbindungszeichenfolge (0); [08001] [Sybase][ODBC >>>> Driver]Ungültiges Attribut für Verbindungszeichenfolge (0); [08001] >>>> [Sybase][ODBC Driver]Ungültiges Attribut für Verbindungszeichenfolge (0)') >>>> >>>> Maybe a problem with my Connection String? >>>> >>>> connection_string = ( >>>> "DRIVER=Adaptive Server Anywhere 7.0;" >>>> "SERVER=IP;" >>>> "PORT=Port;" >>>> "UID=ID;PWD=password;" >>>> "DATABASE=NameOfDB;" >>>> >>>> "charset=utf8;" >>>> ) >>>> connection_url = URL.create( >>>> "sybase+pyodbc", >>>> query={"odbc_connect": connection_string} >>>> ) >>>> engine = create_engine(connection_url) >>>> >>>> >>>> >>>> Gord Thompson schrieb am Mittwoch, 20. April 2022 um 17:18:08 UTC+2: >>>> >>>>> Yes, that's correct. If you are running 64-bit Python then you need to >>>>> have a 64-bit version of the ODBC driver installed. 64-bit applications >>>>> cannot use 32-bit drivers. >>>>> >>>>> On Wednesday, April 20, 2022 at 2:21:32 AM UTC-6 Trainer Go wrote: >>>>> >>>>>> Hi Gord Thompson, >>>>>> >>>>>> with print pyodbc.drivers() result = ['SQL Server', 'Microsoft Access >>>>>> Driver (*.mdb, *.accdb)', 'Microsoft Excel Driver (*.xls, *.xlsx, >>>>>> *.xlsm, >>>>>> *.xlsb)', 'Microsoft Access Text Driver (*.txt, *.csv)'] >>>>>> >>>>>> but i think i know why i have problems with the connection. Cause i >>>>>> tried to connect with my 64 Bit Python programm a 32 Bit driver and the >>>>>> 32 >>>>>> Bit driver isnt listed in my pyodbc print 64 Bit >>>>>> >>>>>> Gord Thompson schrieb am Donnerstag, 14. April 2022 um 18:30:44 UTC+2: >>>>>> >>>>>>> > Der Datenquellenname wurde nicht gefunden, und es wurde kein >>>>>>> Standardtreiber angegeben >>>>>>> >>>>>>> "The data source name was not found and no default driver was >>>>>>> specified" >>>>>>> >>>>>>> Use >>>>>>> >>>>>>> import pyodbc >>>>>>> >>>>>>> print(pyodbc.drivers()) >>>>>>> >>>>>>> to view the names of the ODBC drivers that are available to your >>>>>>> application. >>>>>>> >>>>>>> On Thursday, April 14, 2022 at 3:35:52 AM UTC-6 Trainer Go wrote: >>>>>>> >>>>>>>> i tried to connect my database but im getting an InterfaceError and >>>>>>>> i dont know how so solve it. >>>>>>>> >>>>>>>> connection_string = ( >>>>>>>> "DRIVER=Adaptive Server Anywhere 7.0;" >>>>>>>> "SERVER=IP;" >>>>>>>> "PORT=Port;" >>>>>>>> "UID=ID;PWD=PASSWORD;" >>>>>>>> "DATABASE=NameOfDatabase;" >>>>>>>> "charset=utf8;" >>>>>>>> ) >>>>>>>> connection_url = URL.create( >>>>>>>> "sybase+pyodbc", >>>>>>>> query={"odbc_connect": connection_string} >>>>>>>> ) >>>>>>>> engine = create_engine(connection_url) >>>>>>>> >>>>>>>> conn = engine.connect() >>>>>>>> >>>>>>>> InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] >>>>>>>> Der Datenquellenname wurde nicht gefunden, und es wurde kein >>>>>>>> Standardtreiber angegeben (0) (SQLDriverConnect)') >>>>>>>> InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] >>>>>>>> [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht >>>>>>>> gefunden, >>>>>>>> und es wurde kein Standardtreiber angegeben (0) (SQLDriverConnect)') >>>>>>>> (Background on this error at: http://sqlalche.me/e/14/rvf5) >>>>>>>> >>>>>>>> i have installed the driver on my computer and its called Adaptive >>>>>>>> Server Anywhere 7.0 so i dont know where the problem is... >>>>>>>> >>>>>>>> Jonathan Vanasco schrieb am Donnerstag, 14. April 2022 um 00:07:06 >>>>>>>> UTC+2: >>>>>>>> >>>>>>>>> The Sybase dialect was deprecated from first-party support by >>>>>>>>> SQLAlchemy and is currently unsupported. >>>>>>>>> >>>>>>>>> Gord Thompson, who is a frequent contributor to the core >>>>>>>>> SQLAlchemy project, and has generously taken over responsibility for >>>>>>>>> the >>>>>>>>> original dialect as a third-party dialect:: >>>>>>>>> >>>>>>>>> https://github.com/gordthompson/sqlalchemy-sybase >>>>>>>>> >>>>>>>>> In addition to offering some excellent code, his repo offers a >>>>>>>>> wiki and some documentation - both of which should help. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Tuesday, April 12, 2022 at 11:10:40 AM UTC-4 Trainer Go wrote: >>>>>>>>> >>>>>>>>>> im a bit lost and need some help. >>>>>>>>>> >>>>>>>>>> im trying to set up a database connection with sqlalchemy to a >>>>>>>>>> Sybase Adaptive Server Anywhere Version 7 and i dont know how. >>>>>>>>>> >>>>>>>>>> I would be really happy if somebody could help me. >>>>>>>>>> >>>>>>>>>> Thanks in advace. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Greetings Mae >>>>>>>>>> >>>>>>>>> -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/d0195bb6-fc03-489d-90fc-40de4846bd2bn%40googlegroups.com.