Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I pass configuration variable values into the pyodbc connect command?

I have a .ini (configuration file) where I have mentioned the server name, Database Name, UserName and Password with which I can connect my app to the MSSQL

self.db = pyodbc.connect(
    'driver={SQL Server};server=homeserver;database=testdb;uid=home;pwd=1234')`

corresponding data mentioned above connect statement is now in config.ini

self.configwrite = ConfigParser.RawConfigParser()
configread = SafeConfigParser()
configread.read('config.ini')

driver = configread.get('DataBase Settings','Driver')
server = str(configread.get('DataBase Settings','Server'))
db = str(configread.get('DataBase Settings','Database'))
user = str(configread.get('DataBase Settings','Username'))
password = str(configread.get('DataBase Settings','Password'))'

How can I pass these variables in the pyodbc connect statement?

I tried this:

self.db = pyodbc.connect('driver={Driver};server=server;database=db;uid=user;pwd=password')

But I am getting an error.

like image 866
Prasanth Avatar asked Apr 10 '12 07:04

Prasanth


People also ask

What is DSN in Pyodbc?

More Information. It is the name that applications use to request a connection to an ODBC Data Source. In other words, it is a symbolic name that represents the ODBC connection. It stores the connection details like database name, directory, database driver, UserID, password, etc.

What is the alternative to Pyodbc?

Another alternative is pypyodbc which was written in pure Python. it can been seen as a re-implemenation of the pyodbc module – with only around 1800 lines code, which is good for maintenance.


Video Answer


2 Answers

Other options for the connect function:

# using keywords for SQL Server authentication
self.db = pyodbc.connect(driver=driver, server=server, database=db,
                         user=user, password=password)

# using keywords for Windows authentication
self.db = pyodbc.connect(driver=driver, server=server, database=db,
                         trusted_connection='yes')    
like image 87
Bryan Avatar answered Oct 06 '22 03:10

Bryan


self.db = pyodbc.connect('driver={%s};server=%s;database=%s;uid=%s;pwd=%s' % ( driver, server, db, user, password ) )

%s is used to include variables into the string

the variables are placed into the string according to their order after the %

like image 22
cptPH Avatar answered Oct 06 '22 03:10

cptPH