コード例 #1
0
    def createModel(self):

        self.model = QtSql.QSqlRelationalTableModel()
        self.model.setTable("Books")

        self.model.setHeaderData(0, QtCore.Qt.Horizontal, "BookId")
        self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Title")
        self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Author")

        self.model.setRelation(
            2, QtSql.QSqlRelation("Authors", "AuthorId", "Name"))

        self.model.select()
コード例 #2
0
def initializeModel(model):
    model.setTable("employee")

    model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
    model.setRelation(2, QtSql.QSqlRelation('city', 'id', 'name'))
    model.setRelation(3, QtSql.QSqlRelation('country', 'id', 'name'))

    model.setHeaderData(0, QtCore.Qt.Horizontal, "ID")
    model.setHeaderData(1, QtCore.Qt.Horizontal, "Name")
    model.setHeaderData(2, QtCore.Qt.Horizontal, "City")
    model.setHeaderData(3, QtCore.Qt.Horizontal, "Country")

    model.select()
コード例 #3
0
    def __init__(self, controller, parent=None):
        # QtGui.QDialog.__init__(self, parent)
        super(BookmarkManagerDialog, self).__init__(parent=parent)

        self.ui = Ui_Bookmark_Dialog()
        self.ui.setupUi(self)

        self.controller = controller
        path = Utility.get_dir_name(
            controller.model.settings_manager.settings.fileName())

        self.db = QtSql.QSqlDatabase().addDatabase("QSQLITE")
        self.db.setDatabaseName(path + u'/bookmark.db')

        if self.db.open():

            self.model = QtSql.QSqlTableModel(self, self.db)
            self.model.setTable('Bookmark')

            self.model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
            self.model.select()
            self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Name")
            self.model.setHeaderData(3, QtCore.Qt.Horizontal, "Page")

            self.ui.bookmark_table.setModel(self.model)
            self.ui.bookmark_table.hideColumn(0)
            self.ui.bookmark_table.hideColumn(1)
            self.ui.bookmark_table.hideColumn(4)

            self.ui.bookmark_table.horizontalHeader().setResizeMode(
                2, QtGui.QHeaderView.Stretch)
            self.ui.bookmark_table.horizontalHeader().setResizeMode(
                3, QtGui.QHeaderView.ResizeToContents)

            self.ui.button_remove.clicked.connect(self._remove_table_item)
            self.ui.button_load.clicked.connect(self._get_comic_to_open)

            selection = self.ui.bookmark_table.selectionModel()
            selection.selectionChanged.connect(self.selection_changed)

            self.no_cover_label = self.ui.page_image_label.pixmap(
            ).scaledToWidth(self.width() * self.SCALE_RATIO,
                            QtCore.Qt.SmoothTransformation)

            self.ui.page_image_label.setPixmap(self.no_cover_label)
            print '[INFO] Database load!'

        else:
            print "[ERROR] Unable to create db file!"
コード例 #4
0
ファイル: accountShareModel.py プロジェクト: mrbez/pydosh
    def __init__(self, parent=None):
        super(AccountShareModel, self).__init__(parent=parent)
        self.setTable('users')
        self.setFilter('userid != %s' % db.userId)
        self.setSort(enum.kUsers_UserName, QtCore.Qt.AscendingOrder)
        self.select()

        model = QtSql.QSqlRelationalTableModel(self)
        model.setTable('accountshare')
        model.setRelation(enum.kAccountShare_UserId,
                          QtSql.QSqlRelation('users', 'userid', 'username'))
        model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
        model.select()
        self.shareModel = model
        self.accountId = None
コード例 #5
0
ファイル: app.py プロジェクト: Lucors/pyside-sqlite
    def __init__(self, parent=None):
        model = QtSql.QSqlRelationalTableModel()
        model.setTable(u'PURCHASE')
        model.setRelation(4, QtSql.QSqlRelation(u"GC", u"код", u"название"))
        model.setHeaderData(4, QtCore.Qt.Horizontal, u"видеокарта",
                            QtCore.Qt.DisplayRole)
        model.setRelation(5, QtSql.QSqlRelation(u"BUYER", u"код", u"адрес"))
        model.setHeaderData(5, QtCore.Qt.Horizontal, u"адрес покупателя",
                            QtCore.Qt.DisplayRole)
        model.setEditStrategy(QtSql.QSqlRelationalTableModel.OnManualSubmit)
        model.select()

        super(TablePURCHASE, self).__init__(model, parent)
        self.view.setItemDelegateForColumn(1, DateDelegate(self.view))
        self.view.setItemDelegateForColumn(3, BoolDelegate(self.view))
コード例 #6
0
ファイル: app.py プロジェクト: Lucors/pyside-sqlite
    def __init__(self, parent=None):
        model = QtSql.QSqlRelationalTableModel()
        model.setTable(u'GC')
        model.setRelation(2, QtSql.QSqlRelation(u"GPU", u"код", u"название"))
        model.setHeaderData(2, QtCore.Qt.Horizontal, u"граф. проц",
                            QtCore.Qt.DisplayRole)
        model.setRelation(3, QtSql.QSqlRelation(u"MRER", u"код", u"название"))
        model.setHeaderData(3, QtCore.Qt.Horizontal, u"производитель",
                            QtCore.Qt.DisplayRole)
        model.setRelation(4, QtSql.QSqlRelation(u"MMR", u"код", u"объём"))
        model.setHeaderData(4, QtCore.Qt.Horizontal, u"объём памяти",
                            QtCore.Qt.DisplayRole)
        model.setEditStrategy(QtSql.QSqlRelationalTableModel.OnManualSubmit)
        model.select()

        super(TableGC, self).__init__(model, parent)
コード例 #7
0
ファイル: app.py プロジェクト: Lucors/pyside-sqlite
    def __init__(self, parent=None):
        model = QtSql.QSqlTableModel()
        model.setTable(u'BUYER')
        model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
        model.select()

        super(TableBUYER, self).__init__(model, parent)
コード例 #8
0
    def createTourney(self, name, player, minPlayers, maxPlayers):

        print "we do this"
        query = QtSql.QSqlQuery(self.db)
        queryStr = ("INSERT INTO hopin_tournament (`host`) VALUE ( %i )" %
                    player.getId())
        query.exec_(queryStr)
        uuid = query.lastInsertId()
        uuid = 1

        tourney = tournament(uuid, name, player, minPlayers, maxPlayers, self)
        self.tourney.append(tourney)

        jsonToSend = {}
        jsonToSend["command"] = "social"
        jsonToSend["autojoin"] = re.sub(r'\W+', '_', name)
        player.getLobbyThread().sendJSON(jsonToSend)

        for p in self.parent.players.getAllPlayers():
            print p
            jsonToSend = {}
            jsonToSend["command"] = "tournament_info"
            jsonToSend["state"] = tourney.getState()
            jsonToSend["uid"] = tourney.getid()
            jsonToSend["title"] = tourney.getName()
            jsonToSend["host"] = player.getLogin()
            jsonToSend["min_players"] = tourney.minPlayers
            jsonToSend["max_players"] = tourney.maxPlayers
            print jsonToSend
            p.getLobbyThread().sendJSON(jsonToSend)
コード例 #9
0
ファイル: TabAdmin.py プロジェクト: galbrads/Gear_Manager
    def show_shit_list(self):

        query = self.db.getShitListQuery()

        model = QtSql.QSqlQueryModel()
        model.setQuery(query)
        model.setHeaderData(0, QtCore.Qt.Horizontal, 'Member First Name')
        model.setHeaderData(1, QtCore.Qt.Horizontal, 'Member Last Name')
        model.setHeaderData(2, QtCore.Qt.Horizontal, 'Gear Name')
        model.setHeaderData(3, QtCore.Qt.Horizontal, 'Gear ID')
        model.setHeaderData(4, QtCore.Qt.Horizontal, 'Check Out Date/Time')
        model.setHeaderData(5, QtCore.Qt.Horizontal, 'Due Date')

        self.viewShitList.setWindowTitle('Shit List')
        self.viewShitList.setWindowIcon(self.parent.icon)
        self.viewShitList.resize(600, 500)
        self.viewShitList.setModel(model)
        self.viewShitList.setEditTriggers(
            QtGui.QAbstractItemView.NoEditTriggers)
        self.viewShitList.setSelectionMode(
            QtGui.QAbstractItemView.SingleSelection)
        self.viewShitList.setSelectionBehavior(
            QtGui.QAbstractItemView.SelectRows)
        self.viewShitList.resizeColumnsToContents()
        self.viewShitList.show()
コード例 #10
0
    def __init__(self, in_fileName, in_connectionName="default"):
        self.fileName = in_fileName
        self.connectionName = in_connectionName

        self.SQL_connection = QtSql.QSqlDatabase.addDatabase(
            "QSQLITE", self.connectionName)
        self.SQL_connection.setDatabaseName(self.fileName)

        if self.SQL_connection.open():
            self.query_create = QtSql.QSqlQuery(self.SQL_connection)
            self.query_select = QtSql.QSqlQuery(self.SQL_connection)
            self.query_insert = QtSql.QSqlQuery(self.SQL_connection)
            self.query_delete = QtSql.QSqlQuery(self.SQL_connection)
            self.query_temp = QtSql.QSqlQuery(self.SQL_connection)
        else:
            self.error = self.SQL_connection.lastError()
コード例 #11
0
def populateDatabase():
    '''Create 'favorites' table of favorite food'''

    query = QtSql.QSqlQuery()
    if not query.exec_("""CREATE TABLE favorites (
                id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL,
                category VARCHAR(40) NOT NULL,
                number INTEGER NOT NULL,
                shortdesc VARCHAR(20) NOT NULL,
                longdesc VARCHAR(80))"""):
        print "Failed to create table"
        return False

    print "Populating table..."
    categories = ("Apples", "Chocolate chip cookies", "Favra beans")
    numbers = (1, 2, 3)
    shortDescs = ("Crispy", "Yummy", "Clarice?")
    longDescs = ("Healthy and tasty", "Never not good...", "")
    query.prepare(
        """INSERT INTO favorites (category, number, shortdesc, longdesc)
                     VALUES (:category, :number, :shortdesc, :longdesc)""")
    for category, number, shortDesc, longDesc in zip(categories, numbers,
                                                     shortDescs, longDescs):
        print category, number, shortDesc, longDesc
        query.bindValue(":category", category)
        query.bindValue(":number", number)
        query.bindValue(":shortdesc", shortDesc)
        query.bindValue(":longdesc", longDesc)
        if not query.exec_():
            print "Failed to populate table"
            return False
    QtGui.QApplication.processEvents()  #is this needed?
    return True
コード例 #12
0
def getColumns(db, varDict, usrVars, queryString):
    columns = []
    for v in usrVars:
        # make an empty list in 'columns' that will become this variable's numpy array
        columns.append([])

    q = QtSql.QSqlQuery(db)
    q.setForwardOnly(True)
    q.exec_(queryString)
    while q.next():
        for i, v in enumerate(usrVars):
            if varDict[v][0] == "<type 'int'>":
                columns[i].append(int(q.value(i)))
            elif varDict[v][0] == "<type 'float'>":
                columns[i].append(float(q.value(i)))
            elif varDict[v][0] == "<type 'unicode'>":
                columns[i].append(str(q.value(i)))

    # convert columns to numpy arrays, paying attention to type
    for i, v in enumerate(usrVars):
        if varDict[v][0] == "<type 'int'>":
            columns[i] = np.array(columns[i], dtype=np.int32)
        elif varDict[v][0] == "<type 'float'>":
            columns[i] = np.array(columns[i], dtype=np.float64)
        elif varDict[v][0] == "<type 'unicode'>":
            columns[i] = np.array(columns[i], dtype=np.object)

    return columns
コード例 #13
0
def getRecordCount(db, table):
    q = QtSql.QSqlQuery(db)
    q.exec_(str('select COUNT(*) from ' + table))
    if q.next():
        return str(q.value(0))
    else:
        return '0'
コード例 #14
0
    def __init__(self, parent=None):
        try:
            super(start, self).__init__(parent)
            self.logger = logging.getLogger()

            self.logger.info("Update server starting")
            self.db = QtSql.QSqlDatabase("QMYSQL")
            self.db.setHostName(DB_SERVER)
            self.db.setPort(DB_PORT)

            self.db.setDatabaseName(DB_NAME)
            self.db.setUserName(DB_LOGIN)
            self.db.setPassword(DB_PASSWORD)
            self.db.setConnectOptions("MYSQL_OPT_RECONNECT=1")

            if not self.db.open():
                self.logger.error(self.db.lastError().text())

            else:
                self.logger.info("DB opened.")

            self.updater = updateServer(self)
            if not self.updater.listen(QtNetwork.QHostAddress.Any, 9001):

                self.logger.error("Unable to start the server")

                return
            else:
                self.logger.info("Starting the update server on  %s:%i" %
                                 (self.updater.serverAddress().toString(),
                                  self.updater.serverPort()))
        except Exception as e:
            self.logger.exception("Error: %r" % e)
コード例 #15
0
ファイル: Dictionary.py プロジェクト: winsold107/testing_1c
    def __init__(self):
        super(Dictionary, self).__init__()
        self.__set_of_words__ = set()
        self.__used_words__ = set()
        self.db = QtSql.QSqlDatabase()

        self.random = Random()
コード例 #16
0
ファイル: TabTransMan.py プロジェクト: galbrads/Gear_Manager
        def showMembsPayments():

            cmd = 'SELECT M.FirstName, M.LastName, Amount, Date, Type, Comment FROM FinancialTrans F, Member M WHERE M.ID={0} AND F.MID=M.ID ORDER BY DATE ASC'.format(
                self.parent.currentMember.ID)

            query = self.db.execQuery(
                cmd,
                'TabTransMan.py -> showMembsPayments -> showPaymentWindow')

            model = QtSql.QSqlQueryModel()
            model.setQuery(query)
            model.setHeaderData(0, QtCore.Qt.Horizontal, 'First Name')
            model.setHeaderData(1, QtCore.Qt.Horizontal, 'Last Name')
            model.setHeaderData(2, QtCore.Qt.Horizontal, 'Ammount')
            model.setHeaderData(3, QtCore.Qt.Horizontal, 'Date')
            model.setHeaderData(4, QtCore.Qt.Horizontal, 'Type')
            model.setHeaderData(5, QtCore.Qt.Horizontal, 'Comment')

            self.viewMembers = QtGui.QTableView(None)
            self.viewMembers.setWindowTitle('Member Transactions')
            self.viewMembers.setWindowIcon(self.parent.icon)
            self.viewMembers.resize(600, 500)
            self.viewMembers.setModel(model)
            self.viewMembers.setEditTriggers(
                QtGui.QAbstractItemView.NoEditTriggers)
            self.viewMembers.setSelectionMode(
                QtGui.QAbstractItemView.SingleSelection)
            self.viewMembers.setSelectionBehavior(
                QtGui.QAbstractItemView.SelectRows)
            self.viewMembers.resizeColumnsToContents()
            self.viewMembers.show()
コード例 #17
0
ファイル: importModel.py プロジェクト: mrbez/pydosh
    def __init__(self, files, parent=None):
        super(ImportModel, self).__init__(parent=parent)
        self._headers = []
        self._root = TreeItem()
        self._checksums = []
        self._checksumsSaved = None
        self.__currentTimestamp = None

        # Import all record checksums
        query = QtSql.QSqlQuery("""
		    SELECT checksum
		      FROM records r
		INNER JOIN accounts a
		        ON a.id=r.accountid
		       AND a.userid=%d
			""" % db.userId)

        if query.lastError().isValid():
            raise Exception(query.lastError().text())

        while query.next():
            self._checksums.append(query.value(0))

        self._checksumsSaved = self._checksums[:]

        for item in self.readFiles(files):
            self._root.appendChild(item)

        self._root.setRecordsImported(self._checksums)
        self._root.setDuplicateRecords()

        self._numColumns = self._root.maxColumns()
        self._headers = range(self._numColumns)
コード例 #18
0
ファイル: accountsDialog.py プロジェクト: mrbez/pydosh
    def switchAccount(self, index):
        """ Account changed by user, populate all fields
		"""
        if index == -1:
            return

        model = self.accountCombo.model()
        self.sortCode.setText(
            model.index(index, enum.kAccounts_SortCode).data())
        self.accountNo.setText(
            model.index(index, enum.kAccounts_AccountNo).data())
        realAccountName = model.index(index,
                                      enum.kAccounts_AccountTypeId).data()
        self.accountType.setCurrentIndex(
            self.accountType.findText(realAccountName))

        # Set the filter on accountshare table
        accountId = model.index(index, enum.kAccounts_Id).data()
        self.accountShareView.model().changedAccount(accountId)
        self._allowAccountShareEdit = True

        query = QtSql.QSqlQuery(
            'SELECT count(*) FROM records WHERE accountid=%s' % accountId)
        query.next()
        self._accountRecordCount = query.value(0)
        self.setButtonsEnabled()
コード例 #19
0
def main():

    db = QtSql.QSqlDatabase.addDatabase("QSQLITE")

    db.setDatabaseName("test.db")

    if not db.open():
        print "cannot establish a database connection"
        sys.exit(1)

    db.transaction()
    q = QtSql.QSqlQuery()
    q.exec_("DROP TABLE IF EXISTS Cars")
    check_error(q, db)
    q.exec_("CREATE TABLE Cars(Id INT," "Name TEXT, Price INT)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(1,'Audi',52642)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(2,'Mercedes',57127)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(3,'Skoda',9000)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(4,'Volvo',29000)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(5,'Bentley',350000)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(6,'Citroen',21000)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(7,'Hummer',41400)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(8,'Volkswagen',21600)")
    check_error(q, db)
    db.commit()

    db.close()
コード例 #20
0
    def populateDates(self):
        """ Set date fields to min and max values
		"""
        query = QtSql.QSqlQuery("""
		    SELECT MIN(r.date), MAX(r.date), MAX(r.insertdate)
		      FROM records r
		 LEFT JOIN accounts a
		        ON a.id=r.accountid
		 LEFT JOIN accountshare acs
		        ON acs.accountid = r.accountid
		     WHERE (a.userid=%(userid)s
		        OR acs.userid=%(userid)s)
		""" % {'userid': db.userId})

        if query.lastError().isValid():
            QtGui.QMessageBox.critical(self, 'Database Error',
                                       query.lastError().text(),
                                       QtGui.QMessageBox.Ok)
            return

        if query.next():
            startDate = query.value(0)
            endDate = query.value(1)
            maxInsertDateTime = query.value(2)

            self.startDateEdit.setDateRange(startDate, endDate)
            self.endDateEdit.setDateRange(startDate, endDate)
            self.maxInsertDate = maxInsertDateTime
コード例 #21
0
    def deleteAccount(self):
        for index in self.view.selectionModel().selectedRows():

            accountTypeId = self.model.index(
                index.row(), enum.kAccountType__AccountTypeId).data()

            query = QtSql.QSqlQuery(
                'SELECT COUNT(*) FROM records WHERE accounttypeid=%s' %
                accountTypeId)
            query.next()

            recordCount = query.value(0)

            if recordCount:
                QtGui.QMessageBox.critical(
                    self, 'Account Delete ',
                    'Cannot delete account, %d records exist for this account'
                    % recordCount)
                return

            if index.isValid():
                self.model.removeRows(index.row(), 1, QtCore.QModelIndex())

        self.view.clearSelection()
        self.enableCommit(True)
コード例 #22
0
    def __init__(self, tableName, parent=None):
        super(TableEditor, self).__init__(parent)

        self.model = QtSql.QSqlTableModel(self)
        self.model.setTable(tableName)
        self.model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
        self.model.select()

        self.model.setHeaderData(0, QtCore.Qt.Horizontal, "ID")
        self.model.setHeaderData(1, QtCore.Qt.Horizontal, "First name")
        self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Last name")

        view = QtGui.QTableView()
        view.setModel(self.model)

        submitButton = QtGui.QPushButton("Submit")
        submitButton.setDefault(True)
        revertButton = QtGui.QPushButton("&Revert")
        quitButton = QtGui.QPushButton("Quit")

        buttonBox = QtGui.QDialogButtonBox(QtCore.Qt.Vertical)
        buttonBox.addButton(submitButton, QtGui.QDialogButtonBox.ActionRole)
        buttonBox.addButton(revertButton, QtGui.QDialogButtonBox.ActionRole)
        buttonBox.addButton(quitButton, QtGui.QDialogButtonBox.RejectRole)

        submitButton.clicked.connect(self.submit)
        revertButton.clicked.connect(self.model.revertAll)
        quitButton.clicked.connect(self.close)

        mainLayout = QtGui.QHBoxLayout()
        mainLayout.addWidget(view)
        mainLayout.addWidget(buttonBox)
        self.setLayout(mainLayout)

        self.setWindowTitle("Cached Table")
コード例 #23
0
    def remRow(self):
        index = self.view.currentIndex()  #how to upull row from index?
        if not index.isValid():
            return
        rowNum = index.row()
        #print "Trying to remove row ", rowNum
        QtSql.QSqlDatabase.database().transaction()  #begin transaction
        record = self.model.record(index.row())
        rowID = int(record.value(ID))

        #dialog to ask user if they are sure
        msg = "<font color=red>Delete</font> <b>row {}</b><br>from {}?".format(
            rowNum, self.tableName)
        if (QtGui.QMessageBox.question(
                self, "Delete row", msg, QtGui.QMessageBox.Yes
                | QtGui.QMessageBox.No) == QtGui.QMessageBox.No):
            QtSql.QSqlDatabase.database().rollback()
            return

        #If user has verified they want row deleted, do it
        query = QtSql.QSqlQuery()
        query.exec_("DELETE FROM {} WHERE id = {}".format(
            self.tableName, rowID))
        self.model.removeRow(index.row())
        self.model.submitAll()  #commits change to database
        QtSql.QSqlDatabase.database().commit()  #commit transaction
コード例 #24
0
ファイル: browse_products.py プロジェクト: ermolalex/spos_
    def __init__(self, table):
        super(BrowseProducts, self).__init__()
        self.setupUi(self)

        #site_pack_path = site.getsitepackages()[1]
        #QtGui.QApplication.addLibraryPath('{0}\\PySide\\plugins'.format(site_pack_path))

        #QApplication.addLibraryPath("c:\\Python27\\Lib\\site-packages\\PySide\\plugins\\")

        # Connect to database
        __database__ = QtSql.QSqlDatabase.addDatabase('QSQLITE')
        __database__.setDatabaseName('spos.db')
        __database__.open()

        # Create table model
        self.__tableModel__ = QtSql.QSqlTableModel(self, __database__)
        self.__tableGrid__.setModel(self.__tableModel__)

        self.__tableModel__.setTable(table)
        self.__tableModel__.select()

        print(self.__tableModel__.selectStatement())

        # Connect combobox signal to update model
        """
コード例 #25
0
def printTable(tableName):
    '''Print out all contents of a table (header names, and each row)'''
    #print "Printing contents of table '{}'".format(tableName)

    query = QtSql.QSqlQuery()
    if not query.exec_("""SELECT * FROM {}""".format(tableName)):
        print "Failure to execute SELECT in displayTable"
        return False
    record = query.record()

    #display fields
    numFields = record.count(
    )  #; print "There are {} fields".format(numFields);
    fieldNames = ()
    print "\nFields:"
    for fieldNum in range(numFields):
        fieldNames = fieldNames + (record.fieldName(fieldNum), )
    print fieldNames

    #display values
    print "Values:"
    while query.next():
        values = []
        for field in range(numFields):
            values.append(query.value(field))
        print values

    QtGui.QApplication.processEvents()
    return True
コード例 #26
0
    def delete_btn_clicked(self):
            query = QtSql.QSqlQuery()
            inds = self.tableView.selectionModel().selectedRows()
            print(inds)
            if inds:
                num_records = len(inds)
                ret = QMessageBox.critical(self.mem_win, "Confirm Delete", "Are you sure you want to delete " + str(num_records) + " records? Please note all related lifts performed by this member will also be deleted. This action cannot be undone.", QMessageBox.Ok|QMessageBox.Cancel)
                if ret == QMessageBox.Cancel:
                    return
                elif ret == QMessageBox.Ok:
                    progress = QProgressDialog("Deleting Records...", "Abort Delete", 0, num_records, self.mem_win)
                    counter = 0
                    for ind in inds:
                        progress.setValue(counter)
                        if progress.wasCanceled():
                            QMessageBox.information(self.mem_win, "Operation Cancelled", str(counter) + " records imported!", QMessageBox.Ok)
                            return
                        index = ind.row()
                        db_id = self.data[index][0]
                        print(db_id)
                        tmp_mem = self.session.query(Member).filter(Member.id == db_id).first()
                        print(tmp_mem)
                        try:
                            self.session.delete(tmp_mem)
                            self.session.commit()
                        except:
                            self.session.rollback()

                        counter += 1
                    progress.setValue(num_records)
                    self.refresh_table()
            else:
                QMessageBox.critical(self.mem_win, "No selection", "Please make a select at least one row to delete!", QMessageBox.Ok)
コード例 #27
0
ファイル: gamesContainer.py プロジェクト: marslabtron/server
    def createUuid(self, playerId):
        query = QtSql.QSqlQuery(self.db)
        queryStr = ("INSERT INTO game_stats (`host`) VALUE ( %i )" % playerId)
        query.exec_(queryStr)
        uuid = query.lastInsertId()

        return uuid
コード例 #28
0
def createView(title, model):
    view = QtGui.QTableView()
    view.setModel(model)
    view.setItemDelegate(QtSql.QSqlRelationalDelegate(view))
    view.setWindowTitle(title)

    return view
コード例 #29
0
def main():

    db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName("allsortsDB.db")

    if not db.open():
        print "Cannot establish a databse connection"
        sys.exit(1)

    db.transaction()
    q = QtSql.QSqlQuery()
    q.exec_("drop table if exists Cars")
    check_error(q, db)
    q.exec_("create table Cars(Id Int, Name text, Price int)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(1,'Audi ',52642)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(2,'Mercedes ',57127)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(3,'Skoda ',9000)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(4,'Volvo ',29000)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(5,'Bentley ' ,350000)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(6,'Citroen ',21000)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(7,'Hummer ',41400)")
    check_error(q, db)
    q.exec_("INSERT INTO Cars VALUES(8,'Volkswagen ',21600)")
    check_error(q, db)
    db.commit()
    db.close()
コード例 #30
0
ファイル: fafbot.py プロジェクト: fafafaf/server
 def _on_join(self, c, e):
     try:
         ch = e.target
         nick = e.source.nick
         if nick == c.get_nickname():
             self.channels[ch] = Channel()
             self.connection.send_raw("NAMES" + (ch))
             #self.connection.send_raw("PRIVMSG %s :%s" % ("#aeolus", "yo!"))
         elif "aeolus" in ch :
             #print nick,"has joined", ch
             query = QtSql.QSqlQuery(self.db)
             query.prepare("SELECT faction, IFNULL(dominant,-1) FROM galacticwar.accounts LEFT join galacticwar.domination on galacticwar.accounts.faction = galacticwar.domination.slave WHERE  galacticwar.accounts.uid = (SELECT id FROM faf_lobby.login WHERE login = ? )")
             query.addBindValue(nick)
             query.exec_()
             if query.size() > 0:
                 query.first()
                 if int(query.value(1)) != -1:
                     faction = int(query.value(1))
                 else:
                     faction = int(query.value(0))
                 if faction == 0 :
                     channel = "#UEF"
                 elif faction == 1 :
                     channel = "#Aeon"
                 elif faction == 2 :
                     channel = "#Cybran"
                 elif faction == 3 :
                     channel = "#Seraphim"
 
                 self.connection.privmsg('chanserv', 'INVITE %s %s' % (channel, nick))
         self.channels[ch].add_user(nick)
     except:
         pass