Example #1
0
 def carregarTable(self):
     db = QSqlDatabase().addDatabase('QSQLITE')
     db.setDatabaseName('Litterarius.db')
     if db.open():
         model = QSqlTableModel(self, db)
         model.setTable("autores")
         model.select()
         self.ui.tableView.setModel(model)
         self.ui.tableView.show()
     db.close()
     QSqlDatabase().removeDatabase('Litterarius.db')
Example #2
0
 def carregarComboBox(self):
     db = QSqlDatabase ().addDatabase ('QSQLITE')
     db.setDatabaseName ('Litterarius.db')
     if db.open ():
         query = QSqlQueryModel (self)
         query.setQuery ("SELECT parcelas_id FROM recebimentos WHERE vendas_id = %s"
                         % (self.ui.txtVendaId.text()))
         model = QSqlTableModel (self, db)
         model.setQuery (query.query ())
         model.select ()
         self.ui.cbParcela.setModel (model)
         self.ui.cbParcela.show ()
     db.close ()
     QSqlDatabase ().removeDatabase ('Litterarius.db')
Example #3
0
 def carregarTable(self):
     db = QSqlDatabase ().addDatabase ('QSQLITE')
     db.setDatabaseName ('Litterarius.db')
     if db.open ():
         query = QSqlQueryModel (self)
         query.setQuery ("SELECT vendas_id as venda, dataVenda as data,"
                         " precoVenda as preco"
                         " FROM vendas")
         model = QSqlTableModel (self, db)
         model.setQuery (query.query ())
         model.select ()
         self.ui.tableView.setModel (model)
         self.ui.tableView.show ()
     db.close ()
     QSqlDatabase ().removeDatabase ('Litterarius.db')
Example #4
0
 def carregarTable(self):
     db = QSqlDatabase().addDatabase('QSQLITE')
     db.setDatabaseName('Litterarius.db')
     conexao = db.connectionName()
     if db.open():
         model = QSqlTableModel(self, db)
         model2 = QSqlTableModel(self, db)
         model.setTable("fornecedores")
         model.select()
         self.ui.tableView.setModel(model)
         self.ui.tableView.show()
         model2.setTable("transportadoras")
         model2.select()
     db.close()
     QSqlDatabase().removeDatabase('Litterarius.db')
 def __init__(self, model, database, parent=None):
     super().__init__(parent)
     self._parent = parent or self
     self._model = model
     self.setModel(self._model)
     self.setAlternatingRowColors(True)
     self.setSortingEnabled(True)
     self.setMouseTracking(True)
     self.viewport().setAttribute(Qt.WA_Hover, True)
     
     self.horizontalHeader().setContextMenuPolicy(Qt.CustomContextMenu)
     self.horizontalHeader().customContextMenuRequested.connect(self.headerMenu)
     
     self._index = None
     self._pos = self.cursor().pos()
     self._timer = QTimer(self)
     self._timer.timeout.connect(self.updateTimer)
     self._timer.start(1000)
     
     self._label = PopupLable(self)
     
     self._database = database
     self._db = QSqlDatabase('QSQLITE')
     self._db.setDatabaseName(self._database)
     self._q = None
     self.lastError = None
     self.beers = OrderedDict()
     self.beerImages = OrderedDict()
     self.tableFields = ['Image', 'name', 'alcohol', 'quantity', 
         'producer', 'country', 'overview']
     self.loadBeers()
Example #6
0
    def addConnection(self, driver, dbName, user, password, host, port):
        """
        Public method to add a database connection.
        
        @param driver name of the Qt database driver (string)
        @param dbName name of the database (string)
        @param user user name (string)
        @param password password (string)
        @param host host name (string)
        @param port port number (integer)
        @return SQL error object (QSqlError)
        """
        err = QSqlError()

        self.__class__.cCount += 1
        db = QSqlDatabase.addDatabase(
            driver.upper(), "Browser{0:d}".format(self.__class__.cCount))
        db.setDatabaseName(dbName)
        db.setHostName(host)
        db.setPort(port)
        if not db.open(user, password):
            err = db.lastError()
            db = QSqlDatabase()
            QSqlDatabase.removeDatabase("Browser{0:d}".format(
                self.__class__.cCount))

        self.connections.refresh()

        return err
Example #7
0
def init_db(path):
    init = not os.path.isfile(path)
    if init:
        sqlite3.connect(path).close()

    database = QSqlDatabase("QSQLITE")
    database.setDatabaseName(path)

    database.open()

    def qt_exec(sql, *args, **kwargs):
        statement = sql.compile(dialect=mock.dialect)
        # print(statement)
        database.exec(str(statement))

    mock = create_engine('sqlite://', strategy='mock', executor=qt_exec)

    if init:
        Base.metadata.create_all(bind=mock)

    assert database.driver().hasFeature(QSqlDriver.EventNotifications)

    for tablename in Base.metadata.tables.keys():
        database.driver().subscribeToNotification(tablename)

    def call_callbacks(name: str):
        print("db changed")
        cb = Base.metadata.tables[name].onTableChanged
        if cb:
            cb()

    database.driver().notification.connect(call_callbacks)

    return database, mock
Example #8
0
    def carregarTable(self):
        db = QSqlDatabase().addDatabase('QSQLITE')
        db.setDatabaseName('Litterarius.db')
        conexao = db.connectionName()
        if db.open():
            query = QSqlQueryModel(self)
            query.setQuery(
                "SELECT"
                " livros_id, titulo, editoras.editora,"
                " isbn, qtde_estoque, vl_unitario, consignado"
                " FROM livros"
                " INNER JOIN editoras ON livros.editoras_fk = editoras.editoras_id"
            )
            model = QSqlTableModel(self, db)
            model.setQuery(query.query())
            model.select()
            self.ui.tableView.setModel(model)
            self.ui.tableView.show()

            # carregar combobox de editoras
            query2 = QSqlQueryModel(self)
            query2.setQuery("select(editora) from editoras")
            model2 = QSqlTableModel(self, db)
            model2.setQuery(query2.query())
            model2.select()
            self.ui.cbEditora.setModel(model2)
        db.close()
Example #9
0
 def create(db=QSqlDatabase()):
     sql = """CREATE TABLE treeparam (
         id INTEGER NOT NULL PRIMARY KEY,
         pageid INTEGER,
         fieldid INTEGER,
         position INTEGER)"""
     QSqlQuery(sql, db)
Example #10
0
 def carregarValorParcela(self):
     db = QSqlDatabase ().addDatabase ('QSQLITE')
     db.setDatabaseName ('Litterarius.db')
     if db.open ():
         query = QSqlQuery ()
         valores = query.exec ("SELECT vl_parcela, pago FROM recebimentos"
                         " WHERE parcelas_id = %s" % (self.ui.cbParcela.currentText()))
         while query.next():
             print(query.value('vl_parcela'))
         query.first()
         self.ui.txtVlrParcela.setText (str (query.value('vl_parcela')))
         # self.ui.txtVlrParcela.setText (model.data[0])
         # if model.data[1] == 1:
         #     self.ui.cbxPago.setEnabled(True)
         # else:
         #     self.ui.cbxPago.setEnabled(False)
     db.close ()
     QSqlDatabase ().removeDatabase ('Litterarius.db')
Example #11
0
def MyCustomConnection():
    """ Connection to SQLite databse"""

    db = QSqlDatabase().addDatabase("QSQLITE")
    db.setDatabaseName("db\database.db")
    if db.open():
        print("Connection Opened...")
    else:
        sys.exit(-1234)
Example #12
0
    def __init__(self):
        self.__db = QSqlDatabase('QODBC3')
        self.__db.setDatabaseName('DRIVER={SQL Server};SERVER=localhost;DATABASE=SerialTracker;Port=1433')

        self.__id = 0
        self.__only_watching = False

        if not self.__db.open():
            QMessageBox.critical(self, 'Ошибка', 'Не удалось подключиться к базе данных')
            exit(-2)

        self.__query = QSqlQuery(self.__db)
Example #13
0
 def create(db=QSqlDatabase()):
     sql = """CREATE TABLE statistics (
         id INTEGER NOT NULL PRIMARY KEY,
         pageid INTEGER,
         showed INTEGER,
         chart TEXT,
         fieldid INTEGER,
         subfieldid INTEGER,
         items TEXT,
         period TEXT,
         color INTEGER)"""
     QSqlQuery(sql, db)
Example #14
0
    def carregarTable(self):
        db = QSqlDatabase().addDatabase('QSQLITE')
        db.setDatabaseName('Litterarius.db')
        conexao = db.connectionName()
        if db.open():
            model = QSqlTableModel(self, db)
            model.setTable("generos")
            model.select()
            self.ui.tableView.setModel(model)
            self.ui.tableView.show()

        db.close()
Example #15
0
 def carregarComboBox(self):
     db = QSqlDatabase().addDatabase('QSQLITE')
     db.setDatabaseName('Litterarius.db')
     conexao = db.connectionName()
     if db.open():
         query = QSqlQueryModel(self)
         query.setQuery("SELECT" " fornecedor" " FROM fornecedores")
         model = QSqlTableModel(self, db)
         model.setQuery(query.query())
         model.select()
         self.ui.cbxFornecedores.setModel(model)
         self.ui.cbxFornecedores.show()
     db.close()
    def carregarListView(self):
        db = QSqlDatabase().addDatabase('QSQLITE')
        db.setDatabaseName('Litterarius.db')
        if db.open():
            self.model = QSqlTableModel(self, db)
            # self.model.setTable ("autores")
            # self.model.select ()
            query = QSqlQueryModel(self)
            query.setQuery("select(autor) from autores")
            self.model.setQuery(query.query())
            self.ui.lvAutor.setModel(self.model)
            self.ui.lvAutor.show()

        db.close()
Example #17
0
    def __init__(self, libraryPath, parent=None, db=QSqlDatabase()):
        super(desuplayerModel, self).__init__(parent, db)

        self.setTable('tracks')

        self.setEditStrategy(QSqlTableModel.OnFieldChange)
        self.select()
        self._lock_edits = True

        for index, name in enumerate(headers):
            self.setHeaderData(index, Qt.Horizontal, name)
        self.libraryPath = libraryPath

        self.sortColumn = -1
        self.sortOrder = None
Example #18
0
    def carregarListView(self):
        db = QSqlDatabase().addDatabase('QSQLITE')
        db.setDatabaseName('Litterarius.db')
        if db.open():
            self.model = QSqlTableModel(self, db)
            # self.model.setTable ("autores")
            # self.model.select ()
            query = QSqlQueryModel(self)
            query.setQuery("select(genero) from generos")
            self.model.setQuery(query.query())
            self.ui.lvGenero.setModel(self.model)
            self.ui.lvGenero.show()

            self.ui.btnIncluir.clicked.connect(self.clickedIncluir)

        db.close()
Example #19
0
    def create(self, db=QSqlDatabase()):
        db.transaction()

        sql = "CREATE TABLE %s (\
            id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\
            value TEXT, icon BLOB)" % self.name
        QSqlQuery(sql, db)

        query = QSqlQuery(db)
        query.prepare("INSERT INTO sections (name, letter)\
            VALUES (?, ?)")
        query.addBindValue(self.name)
        query.addBindValue(self.letter)
        query.exec_()

        db.commit()
    def __init__(self, db = QSqlDatabase(), dangerousMode = False):
        '''
        Constructor: Creates a QSqlUpgradeManager with a connection to db.

        If db is invalid the default db connection is used.

        If dangerousMode is set to True, then any redundant columns and tables
        in the database will be deleted.
        '''
        self._db = db
        self._query = QSqlQuery(db)
        self._dangerousMode = dangerousMode

        # TODO: Perform schema upgrades first

        self._handleDBObjects()
Example #21
0
    def __init__(self, DatabaseName: str):
        '''
        Constructor: Initialises a connection to the database
        '''
        super.__init__(self)
        self._schema = {}

        self._db = QSqlDatabase(QSqlDriver.SQLite)
        self._db.setDatabaseName(DatabaseName)

        if not self._db.open():
            qCritical("Failed to establish connection with database " +
                      DatabaseName)
            return

        self._initSchema()
Example #22
0
    def create(db=QSqlDatabase()):
        db.transaction()

        sql = """CREATE TABLE settings (
            title CHAR NOT NULL UNIQUE,
            value CHAR)"""
        QSqlQuery(sql, db)

        for key, value in CollectionSettings.Default.items():
            query = QSqlQuery(db)
            query.prepare("""INSERT INTO settings (title, value)
                    VALUES (?, ?)""")
            query.addBindValue(key)
            query.addBindValue(str(value))
            query.exec_()

        db.commit()
Example #23
0
    def __init__(self, parent=None, db=QSqlDatabase(), *args, **kwargs):
        super().__init__(parent, db, *args, **kwargs)
        self.current_power_hour_id = None

        self.setTable("tracks")
        self.setEditStrategy(QSqlTableModel.OnFieldChange)

        self.setHeaderData(self.Columns.url, Qt.Horizontal, "URL")
        self.setHeaderData(self.Columns.title, Qt.Horizontal, "Title")
        self.setHeaderData(self.Columns.length, Qt.Horizontal, "Duration")
        self.setHeaderData(self.Columns.start_time, Qt.Horizontal,
                           "Start Time")
        self.setHeaderData(self.Columns.full_song, Qt.Horizontal, "Full Song?")

        self.setSort(self.Columns.position, Qt.AscendingOrder)
        self.dataChanged.connect(self._load_track_info_if_new_url_given)

        self.select()
Example #24
0
 def carregarTable(self):
     db = QSqlDatabase().addDatabase('QSQLITE')
     db.setDatabaseName('Litterarius.db')
     conexao = db.connectionName()
     if db.open():
         query = QSqlQueryModel(self)
         query.setQuery(
             "SELECT"
             " titulo, editoras.editora,"
             " qtde_estoque, vl_unitario, consignado"
             " FROM livros"
             " INNER JOIN editoras ON livros.editoras_fk = editoras.editoras_id"
         )
         model = QSqlTableModel(self, db)
         model.setQuery(query.query())
         model.select()
         self.ui.tvLivros.setModel(model)
         self.ui.tvLivros.show()
     db.close()
Example #25
0
    def run(self):                              # 2. Implement run()
        ui = Ui_MainWindow()
        window = QMainWindow()
        version = self.build_settings['version']
        ui.setupUi(window)
        window.setWindowTitle("HotelManagementSystem v" + version)

        #Setup Charts for isolated UI editing
        ui.chartView = QtChart.QChartView(window)
        ui.chartView_2 = QtChart.QChartView(window)
        ui.gridLayout_3 = QtWidgets.QGridLayout(ui.groupBox_2)
        ui.gridLayout_3.addWidget(ui.chartView, 0, 0, 1, 1)
        ui.gridLayout_4 = QtWidgets.QGridLayout(ui.groupBox_3)
        ui.gridLayout_4.addWidget(ui.chartView_2, 0, 0, 1, 1)

        window.showMaximized()

        #Database connection, instead of sqlite3
        db = QSqlDatabase('QSQLITE')
        db.setDatabaseName(self.get_resource('hotel.db'))
        model = QSqlTableModel(self.app, db)

        #Threading
        thrd = QThreadPool().globalInstance()
        thrd.setExpiryTimeout(5)
        hlist = ['Reserv. ID','Customer ID','Room #','From','To','Discount','Extension','Net Total']
        worker = TableWorker(update_table("CurrentReservation", hlist, ui.current_res, db, model)) #We pass a function for the worker to execute
        thrd.tryStart(worker)

        #Setup Signals
        ui.newRes.triggered.connect(lambda: self.new_res_dialog(db, ui, model))
        ui.newRoom.triggered.connect(lambda: self.new_room_dialog(db))
        ui.newService.triggered.connect(lambda: self.new_srv_dialog(db))
        ui.newCustomer.triggered.connect(lambda: self.new_customer_dialog(db))
        ui.cancelRes.triggered.connect(lambda: self.new_cancel_dialog(window, db,
                                                ui.current_res.currentIndex(),
                                                thrd, model, hlist, ui.current_res))
        #TODO Add new dialog for adding/deleting services to a current Reservation
        ui.current_res.doubleClicked.connect(lambda: self.new_addservice_dialog(window, db, 
                                                    ui.current_res.currentIndex(), thrd))

        return self.app.exec_()                 # 3. End run() with this line
Example #26
0
    def create(self, db=QSqlDatabase()):
        in_transaction = db.transaction()

        cross_ref = ('country', 'period', 'emitent', 'ruler', 'unit', 'mint',
                     'series')

        if self.name in cross_ref:
            sql = "CREATE TABLE %s (\
                id INTEGER PRIMARY KEY,\
                parentid INTEGER,\
                value TEXT, icon BLOB)" % self.table_name
        else:
            sql = "CREATE TABLE %s (\
                id INTEGER PRIMARY KEY,\
                value TEXT, icon BLOB)" % self.table_name
        QSqlQuery(sql, db)

        query = QSqlQuery(db)
        if self.name in cross_ref:
            sql = "INSERT INTO sections (name, letter, parent, sort)\
                VALUES (?, ?, ?, ?)"

        else:
            sql = "INSERT INTO sections (name, letter, sort)\
                VALUES (?, ?, ?)"

        query.prepare(sql)
        query.addBindValue(self.name)
        query.addBindValue(self.letter)
        if self.name in cross_ref:
            if self.name == 'country':
                query.addBindValue('region')
            else:
                query.addBindValue('country')
        query.addBindValue(int(self.sort))
        query.exec_()

        if in_transaction:
            db.commit()
    def create(db=QSqlDatabase()):
        db.transaction()

        sql = """CREATE TABLE fields (
            id INTEGER NOT NULL PRIMARY KEY,
            title TEXT,
            enabled INTEGER)"""
        QSqlQuery(sql, db)

        fields = CollectionFieldsBase()

        for field in fields:
            query = QSqlQuery(db)
            query.prepare("""INSERT INTO fields (id, title, enabled)
                VALUES (?, ?, ?)""")
            query.addBindValue(field.id)
            query.addBindValue(field.title)
            enabled = field in fields.userFields
            query.addBindValue(int(enabled))
            query.exec_()

        db.commit()
Example #28
0
    def carregarTableByGenero(self):
        db = QSqlDatabase().addDatabase('QSQLITE')
        db.setDatabaseName('Litterarius.db')
        conexao = db.connectionName()
        if db.open():
            query = QSqlQueryModel(self)
            query.setQuery(
                "SELECT"
                " titulo, editoras.editora,"
                " qtde_estoque, vl_unitario, consignado"
                " FROM livros"
                " INNER JOIN editoras ON livros.editoras_fk = editoras.editoras_id"
                " WHERE livros_id =("
                " SELECT livros_id FROM livros_generos WHERE generos_id=("
                "       SELECT generos_id FROM generos WHERE genero LIKE '%s'))"
                % (self.ui.txtPesquisar.text() + "%"))
            model = QSqlTableModel(self, db)
            model.setQuery(query.query())
            model.select()
            self.ui.tvLivros.setModel(model)
            self.ui.tvLivros.show()

        db.close()
Example #29
0
    def __init__(self):

        # ###### STARTUP

        super(DatabaseLogLite, self).__init__()
        self.litedb = QSqlDatabase("QSQLITE")

        db_file = expanduser("~/.eilat/eilat.db")
        rebuild = not isfile(db_file)

        self.litedb.setDatabaseName(db_file)
        self.litedb.open()

        if rebuild:
            query_mknav = (
                "CREATE TABLE navigation (host TEXT NOT NULL," +
                " path TEXT, count INTEGER default 0, prefix char(2)," +
                " PRIMARY KEY (host, path))")

            self.litedb.exec_(query_mknav)

        # ###### VALIDATION
        # verifies database structure, not datatypes

        tables = self.litedb.tables()
        tables_ok = [k in tables for k in ['navigation']]
        if not all(tables_ok):
            raise RuntimeError("tables missing from database")

        fnav_ok = [
            self.litedb.record('navigation').contains(k)
            for k in ['host', 'path', 'count', 'prefix']
        ]

        if not all(fnav_ok):
            raise RuntimeError("bad structure for 'navigation' table")
Example #30
0
 def __open(self):
     self.__db = QSqlDatabase().addDatabase('QSQLITE')
     self.__db.setDatabaseName(DATABASE_NAME)
     return self.__db.open()