commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r6692 - in trunk/gnue-common/src/datasources: . drivers/Base


From: reinhard
Subject: r6692 - in trunk/gnue-common/src/datasources: . drivers/Base
Date: Wed, 17 Nov 2004 16:39:33 -0600 (CST)

Author: reinhard
Date: 2004-11-17 16:39:32 -0600 (Wed, 17 Nov 2004)
New Revision: 6692

Modified:
   trunk/gnue-common/src/datasources/GDataSource.py
   trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
Log:
Added method to jump to a record given by key/value pair(s).


Modified: trunk/gnue-common/src/datasources/GDataSource.py
===================================================================
--- trunk/gnue-common/src/datasources/GDataSource.py    2004-11-17 22:13:16 UTC 
(rev 6691)
+++ trunk/gnue-common/src/datasources/GDataSource.py    2004-11-17 22:39:32 UTC 
(rev 6692)
@@ -402,6 +402,11 @@
       if not self.hasMaster() and self.prequery:
         self.createResultSet()
 
+
+  # Find a specific record in the resultset by field values
+  def findRecord(self, fieldValues):
+    self._currentResultSet.findRecord(fieldValues)
+
   #
   # Hooks for record-level triggers
   #

Modified: trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2004-11-17 
22:13:16 UTC (rev 6691)
+++ trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2004-11-17 
22:39:32 UTC (rev 6692)
@@ -223,6 +223,27 @@
       return self.current
 
   # ---------------------------------------------------------------------------
+  # Find a record by field values
+  # ---------------------------------------------------------------------------
+
+  def findRecord (self, fieldValues):
+    """
+    This function searches through the already loaded records and sets the
+    current record to the first record to match the given fieldValues
+    dictionary (in the form {fieldname: value}).
+    """
+    for i in range (len (self._cachedRecords)):
+      record = self._cachedRecords [i]
+      found = True
+      for (key, value) in fieldValues.items ():
+        if record [key] != value:
+          found = False
+          continue
+      if found:
+        self.__move (i)
+        return self.current
+
+  # ---------------------------------------------------------------------------
   # Close the result set
   # ---------------------------------------------------------------------------
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]