home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.os.vms      DEC's VAX* line of computers & VMS.      264,096 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 262,924 of 264,096   
   =?UTF-8?Q?Arne_Vajh=C3=B8j?= to Lawrence D'Oliveiro   
   Re: VMS x86-64 database server   
   31 Jul 25 15:21:36   
   
   From: arne@vajhoej.dk   
      
   On 7/29/2025 11:02 PM, Lawrence D'Oliveiro wrote:   
   > On Tue, 29 Jul 2025 10:02:00 -0400, Arne Vajhøj wrote:   
   >   
   >> def map_list_rel_to_obj(data):   
   >>       res = []   
   >>       lastorderid = -1   
   >>       for row in data:   
   >>           if row[0] != lastorderid:   
   >>               res.append(myorder(row[0], row[1], row[2]))   
   >>               lastorderid = row[0]   
   >>           res[-1].orderlines.append(orderline(row[3], row[4], row[5],   
   row[6]))   
   >>       return res   
   >   
   > Here’s a somewhat more general way of doing it:   
   >   
   >      def group_query(db, table, field_names, cond, break_field) :   
   >          "iterates over records in table, grouped by values of break_field."   
   \   
   >          " Note that table could be a join on multiple tables."   
   >          entries_iter = db_iter \   
   >            (   
   >              db,   
   >                  "select %(fields)s from %(table)s where %(cond)s order by   
   %(break)s"   
   >              %   
   >                  {   
   >                      "fields" :  ", ".join(field_names),   
   >                      "table" : table,   
   >                      "cond" : cond,   
   >                      "break" : break_field,   
   >                  }   
   >            )   
   >          last_break_id = subbreak = None   
   >          while True :   
   >              entry = next(entries_iter, None)   
   >              if entry != None :   
   >                  entry = dict(zip(field_names, entry))   
   >                  this_break_id = entry[break_field]   
   >              #end if   
   >              if entry == None or this_break_id != last_break_id :   
   >                  if subbreak != None :   
   >                      yield subbreak   
   >                  if entry == None :   
   >                      break   
   >                  last_break_id = this_break_id   
   >                  subbreak = []   
   >              #end if   
   >              subbreak.append(entry)   
   >          #end while   
   >      #end group_query   
      
   That does not stuff data into an object model - it is still just   
   a list and dict approach.   
      
   Arne   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca