Beispiel #1
0
    def apply(self, oid):
        session = getSession()

        ob = session.query(SQLSchema).filter(
            sqlalchemy.and_(
                SQLSchema.oid == oid, SQLSchema.name == self.name)).first()
        if ob is not None:
            return

        session.add(SQLSchema(oid, self.name))
        session.flush()
Beispiel #2
0
    def remove(self, oid):
        session = getSession()

        ob = session.query(SQLSchema).filter(SQLSchema.oid == oid).first()
        if ob is None:
            raise KeyError(oid)
        session.delete(ob)

        ob = session.query(self.Type).filter(self.Type.oid == oid).first()
        if ob is not None:
            session.delete(ob)
            hooks.cache.delDatasheet(oid, self.Type)

        session.flush()
Beispiel #3
0
    def getDatasheet(self, oid, create=True):
        klass = self.Type

        ds = hooks.cache.getDatasheet(oid, klass)
        if ds is not None:
            return ds

        session = getSession()
        ds = session.query(klass).filter(klass.oid == oid).first()
        if ds is None:
            if create:
                ds = klass(oid)
                session.add(ds)
                session.flush()
            else:
                return None

        #ds = session.query(klass).filter(klass.oid == oid).first()
        hooks.cache.setDatasheet(oid, klass, ds)

        return ds
Beispiel #4
0
 def query(self, *args):
     session = getSession()
     if args:
         return session.query(self.Type).filter(*args)
     else:
         return session.query(self.Type)
Beispiel #5
0
 def getSchemaOIDs(self):
     for r in getSession().query(SQLSchema.oid).filter(
         SQLSchema.name == self.name):
         yield r[0]