I have a program in which I display severall tables. This is partly
generic, so I would like to have one general function and put the
specific functionality in the object definition itself.

For example I have:
#####
kmStandTable = sa.Table(
  'kmStand', metadata,
  sa.Column('datum',      sa.Date,    primary_key = True),
  sa.Column('beginStand', sa.Integer, nullable = False),
  sa.Column('eindStand',  sa.Integer, nullable = False),
)
class KmStand(object):
  def __repr__(self):
    return '<KmStand: %10.10s, %6d, %6d>' % (self.datum,
self.beginStand, self.eindStand)

  columns = (
    ('Datum',      80),
    ("BeginStand", 80),
    ('EindStand',  80),
    ('Verschil',   60),
  )
  size  = (320, 600)
  title = 'Km Stand'
sa_orm.mapper(KmStand, kmStandTable)
#####

And in my main code I have:
#####
    i = 0
    for row in session.query(KmStand).all():
      if (row.beginStand == -1) or (row.eindStand == -1):
        afstand = -1
      else:
        afstand = row.eindStand - row.beginStand
      addRow(self, i,('%10.10s' % (row.datum),     '%6d' % (row.beginStand),
                      '%6d'     % (row.eindStand), '%5d' % (afstand)))
      i     = i + 1
#####

This is quite a simple example. There are a few other tables where
there has to be done a lot more and is what has to be done dependend
on the previous record.

What I would like to do is to put in my main code:
#####
    records = Table().getRecords()
    i = 0
    for record in records:
      addRow(self, i,record)
      i     = i + 1
#####

And in my model:
#####
kmStandTable = sa.Table(
  'kmStand', metadata,
  sa.Column('datum',      sa.Date,    primary_key = True),
  sa.Column('beginStand', sa.Integer, nullable = False),
  sa.Column('eindStand',  sa.Integer, nullable = False),
)
class KmStand(object):
  def __repr__(self):
    return '<KmStand: %10.10s, %6d, %6d>' % (self.datum,
self.beginStand, self.eindStand)

  def getRecords(self):
    records = []
    for record in kmStandTable.select().execute():
      if (record.beginStand == -1) or (record.eindStand == -1):
        afstand = -1
      else:
        afstand = record.eindStand - record.beginStand
      records.append(('%10.10s' % (record.datum),     '%6d' %
(record.beginStand),
                      '%6d'     % (record.eindStand), '%5d' % (afstand)))
    return records

  columns = (
    ('Datum',      80),
    ("BeginStand", 80),
    ('EindStand',  80),
    ('Verschil',   60),
  )
  size  = (320, 600)
  title = 'Km Stand'
sa_orm.mapper(KmStand, kmStandTable)
#####

I tried this and it works. But is this a good way to do this? For
example is the returning of a big array not to expensive? At the
moment there are not that many records, but when the table grows, the
returned array will grow also.

-- 
Cecil Westerhof

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to