lib/my_db.py
author fabien
Wed, 24 Sep 2003 14:28:47 -0400
branchxbelweb
changeset 7 7cc3ab1c160b
parent 3 9e7e8b678819
child 8 c763c420cbfc
permissions -rw-r--r--
[svn r1541] Add new keywords entry.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a4c49a0c313b [svn r1527] Premi�re version.
fabien
parents:
diff changeset
     1
#!/usr/bin/python
a4c49a0c313b [svn r1527] Premi�re version.
fabien
parents:
diff changeset
     2
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
     3
import pgdb
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
     4
import config
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
     5
from bkmark import Bookmark
0
a4c49a0c313b [svn r1527] Premi�re version.
fabien
parents:
diff changeset
     6
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
     7
class MyDbConnexion:
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
     8
	def __init__(self):
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
     9
		self.cnx = pgdb.connect(database = config.database,
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    10
			host = config.host+':%d'%config.port,
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    11
			user = config.user, password = config.passwd)
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    12
		self.crs = self.cnx.cursor();
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    13
	def add_bookmark(self, bk):
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    14
		id = self.get_next_id('bookmarks')
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    15
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    16
			INSERT INTO bookmarks(id, url, name, ldesc, added)
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    17
			VALUES (%d, '%s', '%s', '%s', '%s');
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    18
			INSERT INTO bookmarks_keywords(bookmark, keyword)
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    19
			VALUES (%d, %d);
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    20
			""" % (id, bk.url, bk.name, bk.desc, bk.added,
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    21
			id, 0))
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    22
		self.cnx.commit()
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    23
		return id
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    24
	def get_bookmarks(self, ids):
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    25
		qry = """
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    26
			SELECT id, url, name, ldesc, added
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    27
			FROM bookmarks
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    28
			WHERE id = %d
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    29
			""" % (ids.pop(),)
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    30
		for id in ids:
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    31
			qry = qry + " OR id = %d" % (id,)
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    32
		qry = qry + ";"
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    33
		self.crs.execute(qry)
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    34
		bks = []
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    35
		list = self.crs.fetchall()
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    36
		for res in list:
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    37
			bk = Bookmark()
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    38
			bk.id = res[0]
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    39
			bk.url = res[1]
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    40
			bk.name = res[2]
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    41
			bk.desc = res[3]
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    42
			bk.added = res[4]
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    43
			bks.append(bk)
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    44
		return bks
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    45
	def update_bookmark(self, bk):
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    46
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    47
			UPDATE bookmarks
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    48
			SET url = '%s', name = '%s',
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    49
			ldesc = '%s', added = '%s'
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    50
			WHERE id = %d;
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    51
			""" % (bk.url, bk.name, bk.desc, bk.added, bk.id))
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    52
		self.cnx.commit()
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    53
	def update_keywords(self, id, keywords):
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    54
		self.crs.execute("""
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    55
			DELETE FROM bookmarks_keywords
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    56
			WHERE bookmark = %d AND
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    57
			keyword <> 0;""" % (id,))
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    58
		for kw in keywords:
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    59
			if kw == 0: continue
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    60
			self.crs.execute("""
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    61
				INSERT INTO
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    62
				bookmarks_keywords(bookmark, keyword)
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    63
				VALUES (%d, %d);""" % (id, kw))
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    64
		self.cnx.commit()	
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    65
	def remove_bookmark(self, id):
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    66
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    67
			DELETE FROM bookmarks_keywords
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    68
			WHERE bookmark = %d;
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    69
			DELETE FROM bookmarks
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    70
			WHERE id = %d;
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    71
			""" % (id, id))
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    72
		self.cnx.commit()
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    73
	def add_keyword(self, name):
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    74
		id = self.get_next_id('keywords')
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    75
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    76
			INSERT INTO keywords(id, name)
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    77
			VALUES (%d, '%s')'
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    78
			""" % (id, name))
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    79
		self.cnx.commit()
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    80
		return id
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    81
	def get_keyword(self, id):
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    82
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    83
			SELECT name FROM keywords
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    84
			WHERE keyword.id = %d;
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    85
			""" % (id,))
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    86
		return self.crs.fetchone()[0]
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    87
	def get_keywords(self, bk_id):
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    88
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    89
			SELECT id, name FROM keywords, bookmarks_keywords
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    90
			WHERE keywords.id = bookmarks_keywords.keyword
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    91
			AND bookmarks_keywords.bookmark = %d
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    92
			ORDER BY id;
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    93
			""" % (bk_id,))
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    94
		return self.crs.fetchall()
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    95
	def update_keyword(self, id, name):
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
    96
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    97
			UPDATE keywords
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    98
			SET name = '%s'
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
    99
			WHERE id = %d;
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   100
			""" % (name, id))
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   101
		self.cnx.commit()
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   102
	def remove_keyword(self, id):
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   103
		if id == 0:
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   104
			raise "Can't remove default keyword!"
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   105
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   106
			DELETE FROM bookmarks_keywords
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   107
			WHERE keyword = %d;
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   108
			DELETE FROM keywords
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   109
			WHERE id = %d;
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   110
			""" % (id, id))
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   111
		self.cnx.commit()
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   112
	def merge_keywords(self, merge_id, into_id):
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   113
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   114
			UPDATE bookmarks_keywords
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   115
			SET keyword = %d
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   116
			WHERE keyword = %d;
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   117
			""" % (into_id, merge_id))
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   118
		self.remove_keyword(merge_id)
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   119
	def get_all_keywords(self):
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   120
		"""Return a list of pair-elements [id, keyword]."""
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   121
		self.crs.execute("SELECT id, name FROM keywords ORDER BY id;")
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   122
		return self.crs.fetchall()
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   123
	def select_bookmarks(self, has_kw = [0], except_kw = []):
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   124
	        """
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   125
Return a list of id bookmarks who has /has_kw/ set but not /except_kw/.
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   126
"""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   127
		basic_qry = """
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   128
		  SELECT id FROM bookmarks, bookmarks_keywords
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   129
		  WHERE bookmarks.id = bookmarks_keywords.bookmark
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   130
		  AND bookmarks_keywords.keyword = %d
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   131
		  """
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   132
		
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   133
		qry = basic_qry % has_kw[0]
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   134
		for kw in has_kw[1:]:
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   135
			qry = qry + ("INTERSECT " + basic_qry % kw)
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   136
		for kw in except_kw:
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   137
			qry = qry + ("EXCEPT " + basic_qry % kw)
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   138
		qry = qry + ';'
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   139
		self.crs.execute(qry)
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   140
		return self.crs.fetchall()
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   141
	def get_next_id(self, seq_name):
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   142
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   143
			SELECT nextid FROM db_sequence WHERE
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   144
			db_sequence.seq_name = '%s' FOR UPDATE;
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   145
			""" % (seq_name))
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   146
		id = self.crs.fetchone()[0]
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   147
		self.crs.execute("""
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   148
			UPDATE db_sequence SET nextid = %d
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   149
			WHERE seq_name = 'bookmarks';
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   150
			""" % (id+1,))
3
9e7e8b678819 [svn r1530] Add and browse working.
fabien
parents: 2
diff changeset
   151
		return id
0
a4c49a0c313b [svn r1527] Premi�re version.
fabien
parents:
diff changeset
   152
a4c49a0c313b [svn r1527] Premi�re version.
fabien
parents:
diff changeset
   153
def connect():
2
4cb6d9f3d3eb [svn r1529] Mise � jour des fonctions d'acc�s � la DB.
fabien
parents: 0
diff changeset
   154
	return MyDbConnexion()