コード例 #1
0
    def dumps(self, fields=None, options={}):
        rows = self.data(fields)

        if fields is None:
            fields = commands.getFieldTypes(self._db, self._table).keys()

        columnwidths = [0 for i in range(len(fields))]

        if options.get('columns'):
            rows.insert(0, fields)

        for row in iter(rows):
            for i, val in enumerate(row):
                columnwidths[i] = max(len(str(val)), columnwidths[i])

        if options.get('columns'):
            dashes = []
            for i, header in enumerate(fields):
                dashes.append(unicode('-' * (columnwidths[i])))

            rows.insert(1, dashes)

        s = u''
        for row in iter(rows):
            for i, val in enumerate(row):
                s += unicode(val).ljust(columnwidths[i] + 2)
            s += '\n'

        return s
コード例 #2
0
    def dumps(self, fields=None, options={}):
        rows = self.data(fields)

        if options.get('columns'):
            if fields is None:
                fields = commands.getFieldTypes(self._db, self._table).keys()
            rows.insert(0, fields)

        delimiter = options.get('delimeter', ',')
        escapechar = options.get('escapechar', '\\\\')
        lineterminator = options.get('lineterminator', '\\r\\n')
        quotechar = options.get('quotechar', '"')

        s = StringIO.StringIO()
        w = csv.writer(
            s,
            delimiter=delimiter.decode('string-escape'),
            escapechar=escapechar.decode('string-escape'),
            lineterminator=lineterminator.decode('string-escape'),
            quotechar=quotechar.decode('string-escape'),
        )
        w.writerows(rows)
        s.seek(0)

        return s.read()
コード例 #3
0
    def dumps(self, fields=None, options={}):
        rows = self.data(fields)
        indent = options.get('indent', 4)
        if options.get('columns'):
            if fields is None:
                fields = commands.getFieldTypes(self._db, self._table).keys()
            rows.insert(0, fields)

        return json.dumps(rows, indent=indent)
コード例 #4
0
 def reload(self):
     self._model.clear()
     dbfields = OrderedDict()
     for table in self._db.tables():
         item = QtGui.QStandardItem(self._tableicon, table)
         self._model.appendRow(item)
         fields = commands.getFieldTypes(self._db, table)
         columns = QtGui.QStandardItem('Columns')
         item.appendRow(columns)
         for field, type_ in fields.iteritems():
             fielditem = QtGui.QStandardItem(self._columnicon, '%s (%s)' % (field, type_))
             columns.appendRow(fielditem)
         
         columns.setText('Columns (%i)' % len(fields.keys()))
         dbfields[table] = fields
     
     self._db.setFields(dbfields)
コード例 #5
0
    def reload(self):
        self._model.clear()
        dbfields = OrderedDict()
        for table in self._db.tables():
            item = QtGui.QStandardItem(self._tableicon, table)
            self._model.appendRow(item)
            fields = commands.getFieldTypes(self._db, table)
            columns = QtGui.QStandardItem('Columns')
            item.appendRow(columns)
            for field, type_ in fields.iteritems():
                fielditem = QtGui.QStandardItem(self._columnicon,
                                                '%s (%s)' % (field, type_))
                columns.appendRow(fielditem)

            columns.setText('Columns (%i)' % len(fields.keys()))
            dbfields[table] = fields

        self._db.setFields(dbfields)
コード例 #6
0
 def __init__(self, db, table, parent=None):
     super(ExportDataDialog, self).__init__(parent)
     
     self._ui = form_class()
     self._ui.setupUi(self)
     
     self._db = db
     self._table = table
     self._file = None
     
     fields = commands.getFieldTypes(self._db, self._table).keys()
     model = QtGui.QStringListModel(fields)
     self._ui.lvFields.setModel(model)
     self._ui.lvFields.selectAll()
     
     self._ui.bBrowse.clicked.connect(self.setFile)
     self._ui.buttonBox.accepted.connect(self.export)
     self._ui.bSelectAll.clicked.connect(self._ui.lvFields.selectAll)
     self._ui.bDeselectAll.clicked.connect(self._ui.lvFields.clearSelection)
     self._ui.eFile.textChanged.connect(self.__enableSave)
     self.__enableSave()
コード例 #7
0
    def __init__(self, db, table, parent=None):
        super(ExportDataDialog, self).__init__(parent)

        self._ui = form_class()
        self._ui.setupUi(self)

        self._db = db
        self._table = table
        self._file = None

        fields = commands.getFieldTypes(self._db, self._table).keys()
        model = QtGui.QStringListModel(fields)
        self._ui.lvFields.setModel(model)
        self._ui.lvFields.selectAll()

        self._ui.bBrowse.clicked.connect(self.setFile)
        self._ui.buttonBox.accepted.connect(self.export)
        self._ui.bSelectAll.clicked.connect(self._ui.lvFields.selectAll)
        self._ui.bDeselectAll.clicked.connect(self._ui.lvFields.clearSelection)
        self._ui.eFile.textChanged.connect(self.__enableSave)
        self.__enableSave()
コード例 #8
0
    def dumps(self, fields=None, options={}):
        rows = self.data(fields)
        queries = []
        if fields is None:
            fields = commands.getFieldTypes(self._db, self._table).keys()

        if options.get('columns'):
            queries.append(commands.tableCreateScript(self._db, self._table))

        if options.get('data'):
            for row in rows:
                for i, v in enumerate(row):
                    if isinstance(v, (str, unicode)):
                        row[i] = "'%s'" % repr(v)[2:-1]
                    else:
                        row[i] = str(v)

                query = "INSERT INTO {table} ({fields}) VALUES ({values});".format(
                    table=self._table,
                    fields=','.join(fields),
                    values=','.join(row))
                queries.append(query)

        return '\n'.join(queries)