Пример #1
0
    def select(self, start=0, count=1, fields=None):
        """
        Select rows

        start: start row index
        count: number of rows to return
        fields: list of fields to select (default: all)
        """
        try:
            if fields is None:
                self.update()
        except Unavailable:
            if fields is None:
                raise Unavailable()

        records = []
        for i in range(start, start + count):
            record = {}
            if fields is None:
                for field in self.__fields:
                    record[field] = self.dbms.get_record_field_value(field, self.table, i, self.db)
            else:
                for field in fields:
                    record[field] = self.dbms.get_record_field_value(field, self.table, i, self.db)                    
            records.append(record)
        return records
Пример #2
0
 def databases(self):
     """
     Enumerates all existing/accessible databases
     """
     if self.has_cap(DBS_ENUM):
         n = self.get_nb_databases()
         for i in range(n):
             yield DatabaseWrapper(self, self.get_database_name(i))
     else:
         raise Unavailable()
Пример #3
0
 def fields(self, table, db=None):
     """
     Enumerates all fields from a given table. If a database is specified,
     use it. 
     """
     if self.has_cap(FIELDS_ENUM):
         if db is None:
             if self.current_db is None:
                 self.database()
             db = self.current_db
         n = self.get_nb_fields(table, db)
         for i in range(n):
             yield FieldWrapper(self, table, db,
                                self.get_field_name(table, i, db))
     else:
         raise Unavailable()
Пример #4
0
    def tables(self, db=None):
        """
        Enumerates all tables fro a given database. If not specified, use the
        current database.
        """
        if self.has_cap(TABLES_ENUM):
            # if db not given, then find the db
            if db is None:
                if self.current_db is None:
                    self.database()
                db = self.current_db

            n = self.get_nb_tables(db)
            for i in range(n):
                yield TableWrapper(self, self.get_table_name(i, db), db)
        else:
            raise Unavailable()