On Fri, Mar 30, 2018 at 02:55:14PM +0000, Glenn Schultz wrote: > All, > > I can create a connection as follows and it works but I think it is best to > have a connection class that opens and closes.
You already have one: that's what pyodbc.connect is. The documentation is pretty poor: https://github.com/mkleehammer/pyodbc/wiki/Connection but as far as I can tell, pyodbc is a helper function which chooses the correct class to instantiate depending on the database you connect to, and returns an instance of that class. In Design Pattern terms, I think that counts as an Abstract Factory. > I create the connection > class as outline below. However, it does not work - meaning that it does > not return a connection rather it returns > <__main__.modelingdb at 0x40dfbb0> When you call the class, you get back an instance of that class. That's exactly what you have there: an instance of your modelingdb class. > class modelingdb(object): > def __init__(self): > self._db_connection = pyodbc.connect( > driver = '{ODBC Driver 13 for SQL Server}', > server = 'foo', > database = 'foo', > username = 'foo', > password = 'foo', > trusted_connection = 'yes') > self._db_cur = self._db_connection.cursor() > > def __del__(self): > self._db_connection.close() The indentation on this is wrong, so that code won't work. Also, you cannot rely on __del__ in Python classes. This is totally the wrong way to use this. Can I guess that you're a Java or C++ programmer trying to learn Python? Wrapping the connection object in another object is not helpful: you're just duplicating (poorly) what's already been done. If you are new to Python from a Java background, you might find some things take a bit of getting used to. These things may help: Python is not Java. http://dirtsimple.org/2004/12/python-is-not-java.html And Java is not Python either. http://dirtsimple.org/2004/12/java-is-not-python-either.html) Classes are not the centre of the Python universe: https://www.youtube.com/watch?v=o9pEzgHorH0 We try to use more functional and even procedural techniques, but don't worry, classes are still okay http://lucumr.pocoo.org/2013/2/13/moar-classes/ its just the crazy-extreme attitude that *everything* must *always* be a class that we object to. http://steve-yegge.blogspot.com.au/2006/03/execution-in-kingdom-of-nouns.html -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor