On Jun 7, 2013, at 6:11 PM, Victor Reichert <[email protected]> wrote:

> Thank you!
>  
> That got me going.
>  
> For what it's worth, I was using python 3.3 and trying to generate a custom 
> connection string wtih the following command:
>  
> import urllib
> string = urllib.quote_plus('DRIVER={SQL 
> Server};Server=Server;Database=DB;Trusted_Connection=Yes')
> conn = pyodbc.PyODBCConnector()
> url = make_url('mssql+pyodbc://?odbc_connect='+string)
> connect_args = conn.create_connect_args(url)
> print(connect_args)
>  
> Which generated:
>  
> AttributeError: 'module' object has no attribute 'quote_plus'
> 
> I swtiched to python 2.7 and it worked fine.  If the above issue is a general 
> problem in python 3, It might be worth noting the the documentation example 
> will not work in that version.
>  
> I'm getting the feeling that python3 is not well supported yet. 

not for pyodbc in 0.8, but in 0.9 (git master) it's working pretty well (no 
2to3 step either).




>  
> Thank you again for your help,
>  
> ~Victor
> 
> On Thursday, June 6, 2013 12:38:03 PM UTC-5, Michael Bayer wrote:
> I will show you a short program that you can use to experiment with the 
> Pyodbc connector - the purpose of this program is to illustrate what 
> SQLAlchemy will send to pyodbc.connect():
> 
> from sqlalchemy.connectors import pyodbc
> from sqlalchemy.engine.url import make_url
> 
> conn = pyodbc.PyODBCConnector()
> url = make_url('mssql+pyodbc://DSN=py_test; Trusted_Connection=Yes')
> connect_args = conn.create_connect_args(url)
> print(connect_args)
> 
> This returns:
> 
> [['dsn=DSN=py_test; Trusted_Connection=Yes;Trusted_Connection=Yes'], {}]
> 
> where you can see there's an extra "DSN=" in there.  
> 
> There's a large number of connection examples for Pyodbc here:  
> http://docs.sqlalchemy.org/en/rel_0_8/dialects/mssql.html#additional-connection-examples
> 
> You can see, that for standard "TrustedConnection", you only need the dsn 
> name:
> 
> create_engine('mssql+pyodbc://mydsn')
> 
> which our test script shows the arguments as:
> 
> [['dsn=mydsn;Trusted_Connection=Yes'], {}]
> 
> looks good to me, so good luck !
> 
> 
> 
> 
> 
> 
> 
> On Jun 5, 2013, at 9:47 PM, Victor Reichert <[email protected]> wrote:
> 
>> Hello World!
>>  
>> This is my first foray into python and SQL Alchemy, and I'm spinning my 
>> wheels.  I'm running the code below and am able to connect to my DB and 
>> query data without error.
>>  
>> import pyodbc
>> cnxn = pyodbc.connect('DSN=py_test; Trusted_Connection=Yes')
>>  
>> However, when I try
>> 
>> import sqlalchemy
>> engine = sqlalchemy.create_engine('mssql+pyodbc://DSN=py_test; 
>> Trusted_Connection=Yes')
>> result = engine.execute("SELECT * FROM dbo.test_table")
>> I receive the following error, I am running python 3.3 on 32 bit Windows 7 
>> Enterprise
>>  
>> Traceback (most recent call last):
>>   File "C:\Python33\lib\site-packages\sqlalchemy\pool.py", line 757, in 
>> _do_get
>>     return self._pool.get(wait, self._timeout)
>>   File "C:\Python33\lib\site-packages\sqlalchemy\util\queue.py", line 166, 
>> in get
>>     raise Empty
>> sqlalchemy.util.queue.Empty
>> During handling of the above exception, another exception occurred:
>> Traceback (most recent call last):
>>   File "C:\Python33\lib\site-packages\sqlalchemy\engine\strategies.py", line 
>> 80, in connect
>>     return dialect.connect(*cargs, **cparams)
>>   File "C:\Python33\lib\site-packages\sqlalchemy\engine\default.py", line 
>> 285, in connect
>>     return self.dbapi.connect(*cargs, **cparams)
>> pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data 
>> source name not found and no default driver specified (0) 
>> (SQLDriverConnect)')
>> The above exception was the direct cause of the following exception:
>> Traceback (most recent call last):
>>   File 
>> "C:\Users\V114804\workspace\Remetrica_Simulated_ILC_WW_AP_20130520_ELT\Src\Test_DB_Connection.py",
>>  line 11, in <module>
>>     result = engine.execute("SELECT * FROM dbo.test_table")
>>   File "C:\Python33\lib\site-packages\sqlalchemy\engine\base.py", line 1613, 
>> in execute
>>     connection = self.contextual_connect(close_with_result=True)
>>   File "C:\Python33\lib\site-packages\sqlalchemy\engine\base.py", line 1661, 
>> in contextual_connect
>>     self.pool.connect(),
>>   File "C:\Python33\lib\site-packages\sqlalchemy\pool.py", line 272, in 
>> connect
>>     return _ConnectionFairy(self).checkout()
>>   File "C:\Python33\lib\site-packages\sqlalchemy\pool.py", line 425, in 
>> __init__
>>     rec = self._connection_record = pool._do_get()
>>   File "C:\Python33\lib\site-packages\sqlalchemy\pool.py", line 777, in 
>> _do_get
>>     con = self._create_connection()
>>   File "C:\Python33\lib\site-packages\sqlalchemy\pool.py", line 225, in 
>> _create_connection
>>     return _ConnectionRecord(self)
>>   File "C:\Python33\lib\site-packages\sqlalchemy\pool.py", line 318, in 
>> __init__
>>     self.connection = self.__connect()
>>   File "C:\Python33\lib\site-packages\sqlalchemy\pool.py", line 368, in 
>> __connect
>>     connection = self.__pool._creator()
>>   File "C:\Python33\lib\site-packages\sqlalchemy\engine\strategies.py", line 
>> 87, in connect
>>     ) from e
>> sqlalchemy.exc.DBAPIError: (Error) ('IM002', '[IM002] [Microsoft][ODBC 
>> Driver Manager] Data source name not found and no default driver specified 
>> (0) (SQLDriverConnect)') None None
>>  
>> I have also tried:
>>  
>> import sqlalchemy
>> import pyodbc
>>  
>> def connect():
>>     pyodbc.connect('DRIVER={SQL 
>> Server};Server=SDAWWRMSD05;Database=ReMetrica_Results_201207;Trusted_Connection=Yes')
>> print('Connect Method Created')
>> created_engine = sqlalchemy.create_engine('mssql://', creator=connect)
>> created_result = created_engine.execute("SELECT * FROM dbo.test_table")
>> The definition is called, then the program hangs.
>>  
>> If anyone could please give me some advice on how to get around this that 
>> would be great. 
>>  
>> Thank you for your help, please let me know if I can provide any additional 
>> information.
>>  
>> ~Victor
>>  
>> 
>> -- 
>> 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 http://groups.google.com/group/sqlalchemy?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
> 
> 
> -- 
> 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 http://groups.google.com/group/sqlalchemy?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
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 http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to