pyodbc connect string

Larry Martell larry.martell at gmail.com
Tue Apr 29 21:15:18 EDT 2014


On Tue, Apr 29, 2014 at 7:09 PM, Chris Angelico <rosuav at gmail.com> wrote:
> On Wed, Apr 30, 2014 at 10:57 AM, Larry Martell <larry.martell at gmail.com> wrote:
>> This works:
>>
>> pyodbc.connect('DRIVER=FreeTDS;' 'SERVER=xx.xx.xx.xx;' 'PORT=1433;'
>> 'DATABASE=blah;' 'UID=foo;' 'PWD=bar;')
>>
>> But this does not:
>>
>> pyodbc.connect(conn_str)
>>
>> conn_str is constructed with:
>>
>>  conn_str = "'DRIVER=%s;' 'SERVER=%s;' 'PORT=%s;' 'DATABASE=%s;'
>> 'UID=%s;' 'PWD=%s;'" \
>>                 % (RECIPE_DB['DRIVER'], RECIPE_DB['SERVER'],
>> RECIPE_DB['PORT'], RECIPE_DB['DATABASE'],
>>                    RECIPE_DB['USER'], RECIPE_DB['PASSWORD'])
>>
>> Anyone have any ideas as to why this doesn't work.
>
> Start by printing out conn_str. That'll tell you if it's actually
> coming out the way you think it is. I can see where the problem
> probably is (assuming these are faithful copy/pastes), in the form of
> an extra double quote; but actually print them out and see what you're
> getting.

When I print conn_str out it does not have the double quotes, But I
was able to solve this by doing this:

 pyodbc.connect('DRIVER=' + RECIPE_DB['DRIVER'] + ';' + 'SERVER=' +
RECIPE_DB['SERVER'] + ';' + 'PORT=' + RECIPE_DB['PORT'] + ';' +
'DATABASE=' + RECIPE_DB['DATABASE'] + ';' + 'UID=' + RECIPE_DB['USER']
+ ';' + 'PWD=' +  RECIPE_DB['PASSWORD'] + ';')

'
Thanks.



More information about the Python-list mailing list