source: TI02-CSML/tags/stable-TI02-CSML-v2.1-Beta_CDMS1/dbtesting/postgresDB.py @ 2303

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/tags/stable-TI02-CSML-v2.1-Beta_CDMS1/dbtesting/postgresDB.py@3679
Revision 2303, 2.0 KB checked in by domlowe, 14 years ago (diff)

experimental postgres access code added to svn

Line 
1import pgdb
2
3class postgresDb:
4    def __init__(self, database, host, user, pw):
5        self.database = database
6        self.host = host
7        self.user = user
8        self.pw = pw           
9           
10    def connect(self):       
11        connection_string=  self.host + ':' + self.database + ':' + self.user + ':' + self.pw
12        self.connection = pgdb.connect(connection_string)
13        self.cursor  = self.connection.cursor()
14       
15    def select(self, table, column, minVal=None, maxVal=None):
16        '''simple select: select from a column
17        minVal, maxVal can be used to select a range'''
18        if (minVal, maxVal) == (None, None):
19            self.cursor.execute('SELECT %s FROM %s'%(column,table))
20        else:         
21            if minVal is None:
22                self.cursor.execute('SELECT %s FROM %s WHERE %s < %s'%(column,table,column, maxVal))
23            elif maxVal is None:
24                self.cursor.execute('SELECT %s FROM %s WHERE %s > %s'%(column,table,column, minVal))
25            else:
26                self.cursor.execute('SELECT %s FROM %s WHERE %s > %s AND %s < %s'%(column,table,column, minVal, column, maxVal))             
27        return self.cursor.fetchall()
28   
29    def disconnect(self):
30        self.cursor.close()
31        self.connection.close()
32
33def main():
34    #general connection settings
35    DATABASE = 'csmltest'
36    HOST     = 'localhost'
37    USER     = 'dom'
38    PW = 'passwd'
39   
40    #sample query settings
41    TABLE = 'weather'
42    COLUMN = 'temp_lo'
43    MIN = 35
44    MAX = 40
45   
46    ########test code ################
47    print '\n \n Connecting to database: %s'%DATABASE
48    mydb = postgresDb(DATABASE, HOST, USER, PW)
49    mydb.connect()
50       
51    print '\n ...whole table:'
52    print mydb.select(TABLE, '*')
53   
54    print '\n ...%s column:'%COLUMN
55    print mydb.select(TABLE, COLUMN)
56   
57    print '\n ...%s column, min = %s, max = %s:'%(COLUMN,MIN,MAX)
58    print mydb.select(TABLE, COLUMN, MIN, MAX)
59   
60    mydb.disconnect()
61    ##############################   
62       
63if __name__=='__main__':
64    main()
Note: See TracBrowser for help on using the repository browser.