# ADOSample.py # # Simple example of using ADO in WebKit for database access with # automatic connection pooling. # # To run this example, you'll have to set EnableCOM to 1 in the # AppServer.config file; you'll have to create a database with a table # called Customers that has a CustomerName field; and you'll # have to create a System DSN called MyDataSource that points to # that database. Then, install this file in the WebKit/Examples # directory and try it out. It ought to work with any database # accessible through ODBC and/or ADO. # # The recordset function below should go into a base class so it # can be shared among many servlets. from win32com.client import Dispatch from ExamplePage import ExamplePage class ADOSample(ExamplePage): def recordset(self, sql): # Open an ADO connection conn = Dispatch('ADODB.Connection') conn.Open('MyDataSource') # Store the connection in the Application object. We're never going to # USE this stored connection, but we're saving it so that we'll always # have at least one connection to this data source open. ADO # will automatically pool connections to a given data source as long as # at least one connection to that data source remains open at all times, # so doing this significantly increases the speed of opening # the connection the next time this function is called. self.application().MyDataSource_connection = conn # Open and return the requested recordset rs = Dispatch('ADODB.Recordset') rs.Open(sql, conn) return rs def writeContent(self): # Grab some data from the database and display it rs = self.recordset('SELECT CustomerName FROM Customers ORDER BY CustomerName') self.writeln('