Esempio n. 1
0
def init_and_check_db(db_path):
    db = QSqlDatabase.addDatabase("QSQLITE", Setup.DB_CONNECTION)
    if not db.isValid():
        return LedgerInitError(LedgerInitError.DbDriverFailure)
    db.setDatabaseName(get_dbfilename(db_path))
    db.setConnectOptions("QSQLITE_ENABLE_REGEXP=1")
    db.open()
    tables = db.tables(QSql.Tables)
    if not tables:
        db.close()
        connection_name = db.connectionName()
        init_db_from_sql(get_dbfilename(db_path), db_path + Setup.INIT_SCRIPT_PATH)
        QSqlDatabase.removeDatabase(connection_name)
        return LedgerInitError(LedgerInitError.EmptyDbInitialized)

    schema_version = JalSettings().getValue('SchemaVersion')
    if schema_version < Setup.TARGET_SCHEMA:
        db.close()
        return LedgerInitError(LedgerInitError.OutdatedDbSchema)
    elif schema_version > Setup.TARGET_SCHEMA:
        db.close()
        return LedgerInitError(LedgerInitError.NewerDbSchema)

    _ = executeSQL("PRAGMA foreign_keys = ON")
    db_triggers_enable()

    return LedgerInitError(LedgerInitError.DbInitSuccess)
Esempio n. 2
0
 def get_db():
     name = "db-{0}".format(str(QThread.currentThread()))
     if QSqlDatabase.contains(name):
         return QSqlDatabase.database(name)
     else:
         db = QSqlDatabase.addDatabase("QSQLITE", name)
         db.setDatabaseName("video.db")
         return db
Esempio n. 3
0
 def setLogs(self):
     isLogChanged = self.settings.value('logChanged')
     if isLogChanged == 1 or self.initialRun:
         self.db.open()
         self.projectModel.setQuery(
             "select ID, Date, Time, LockedBy from allLogs order by id desc",
             self.db)
         self.db.close()
         QSqlDatabase.removeDatabase("QSQLITE")
         self.settings.setValue('logChanged', 0)
         self.initialRun = False
Esempio n. 4
0
    def init(self) -> bool:
        """Create the Connection to the Database.

        For the Moment just SQLite

        Returns:
            Return true is the database successfull initialized.
        """
        self.database = QSqlDatabase.database()

        if self.dbType == "sqlite":
            if not self.database.isValid():
                self.database = QSqlDatabase.addDatabase("QSQLITE")
                if not self.database.isValid():
                    self.log.error("Cannot add database")
                    return False

            self.database_name = self.__get_sqlite_name()
            file = QFile(self.database_name)
            if file.exists():
                # When using the SQLite driver, open() will create the SQLite
                # database if it doesn't exist.
                self.log.info("Try open the existing db : {}".format(
                    self.database_name))
                self.database.setDatabaseName(self.database_name)
            else:
                self.database.setDatabaseName(self.database_name)
                self.log.info("Try create db : {}".format(self.database_name))
                self.prepare_db()

            if not self.database.open():
                self.log.error("Cannot open database")
                QFile.remove(self.database_name)
                return False
        elif self.dbType == "psql":
            self.database = QSqlDatabase.addDatabase("QPSQL")
        elif self.dbType == "odbc":
            self.database = QSqlDatabase.addDatabase("QODBC")

        self.database.setHostName(self.database_hostname)
        self.database.setPort(self.database_port)
        self.database.setUserName(self.database_user_name)
        self.database.setPassword(self.database_password)

        if not self.database.isValid():
            self.log.error("Cannot add database")
            return False

        if not self.database.open():
            self.log.error("Cannot open database")
            return False

        return True
Esempio n. 5
0
 def setLogs(self):
     isLogChanged = self.settings.value('logChanged')
     if isLogChanged == 1 or self.initialRun:
         self.allLogsModel = QSqlQueryModel()
         dbAllLog = QSqlDatabase.addDatabase("QSQLITE")
         dbAllLog.setDatabaseName("caio.db")
         dbAllLog.open()
         self.allLogsModel.setQuery(
             "select * from allLogs order by id desc ", dbAllLog)
         dbAllLog.close()
         print(self.allLogsModel)
         self.settings.setValue('logChanged', 0)
         QSqlDatabase.removeDatabase("QSQLITE")
         self.initialRun = False
Esempio n. 6
0
def db_connection():
    db = QSqlDatabase.database(Setup.DB_CONNECTION)
    if not db.isValid():
        raise RuntimeError(f"DB connection '{Setup.DB_CONNECTION}' is invalid")
    if not db.isOpen():
        logging.fatal(f"DB connection '{Setup.DB_CONNECTION}' is not open")
    return db
Esempio n. 7
0
    def __init__(self, db_path):

        self.tb_name = {}
        self.db = ''
        # 连接数据库
        self.db = QSqlDatabase.addDatabase("QODBC")
        self.db.setDatabaseName(
            "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ="
            + db_path)
        # db.setUserName('sa')
        self.db.setPassword('20121110')
        # 根据ok的值判断数据库是否连接成功
        # self.ok = db.open()
        if self.db.open():
            query = QSqlQuery(self.db)
            query.exec_(
                "SELECT LOGGER_SN, LOGGER_NAME,  CHONE_HIGH , CHONE_LOW,  CHTWO_HIGH, CHTWO_LOW FROM TO_LOGGER_INFO"
            )
            while query.next():
                # if self.tb_name[query.value(0)]!='H201403057' and self.tb_name[query.value(0)]!='HT20143221':
                self.tb_name[query.value(0)] = (query.value(1), query.value(2),
                                                query.value(3), query.value(4),
                                                query.value(5))
            del (self.tb_name['H201403057'])
            del (self.tb_name['HT20143221'])
Esempio n. 8
0
    def __init__(self):
        QMainWindow.__init__(self)
        Ui_MainWindow.__init__(self)

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ui.dateEdit.setDate(QtCore.QDate.currentDate())
        self.ui.dateEdit.setMinimumDate(QtCore.QDate.currentDate())
        self.ui.dateEdit.setMaximumDate(QtCore.QDate(8181, 12, 31))

        self.ui.AddBtn.clicked.connect(self.save)
        self.ui.lineEdit.returnPressed.connect(self.save)
        self.db = QSqlDatabase.addDatabase("QSQLITE")
        self.db.setDatabaseName("store")
        dateMe = QtCore.QDate.currentDate()
        self.db.open()
        self.que = QSqlQuery("CREATE Table urgent (priority integer, "
                             "task varchar(256), date datetime);")
        if self.que.exec_:
            print("Executed successful.")
        self.que = QSqlQuery("CREATE Table priority (priority integer, "
                             "task varchar(256), date datetime);")
        if self.que.exec_:
            print("Executed successful.")
        self.que = QSqlQuery("CREATE Table dueDate (priority integer, "
                             "task varchar(256), date datetime);")
        if self.que.exec_:
            print("Executed successful.")
        self.load("priority")
        self.load("urgent")
        self.load("dueDate")
        self.ui.priority.itemDoubleClicked.connect(self.editPriority)
        self.ui.urgent.itemDoubleClicked.connect(self.editUrgent)
        self.ui.dueDate.itemDoubleClicked.connect(self.editDueDate)
Esempio n. 9
0
def rollback():
    database = QSqlDatabase.database()
    database.transaction()
    try:
        yield database
    finally:
        database.rollback()
Esempio n. 10
0
 def __init__(self):
     db_path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                            'data.db')
     self.db = QSqlDatabase.addDatabase('QSQLITE')
     self.db.setDatabaseName(db_path)
     self.db.open()
     self.query = QSqlQuery()
Esempio n. 11
0
def create_db():
    """Create the playlist's database file and table if they don't exist.

    The created database should be accessed using :meth:`PySide2.QtSql.QSqlDatabase.database`, the
    name being specified via :const:`project.library.DB_NAME`.

    """
    with sqlite3.connect(DB_NAME) as conn:
        cursor = conn.cursor()
        cursor.execute("""
            create table if not exists playlist (
                id     integer primary key,
                title  text,
                artist text,
                album  text,
                genre  text,
                date   text,
                crc32  integer not null,
                path   text    not null
            );
        """)
        cursor.execute("""
            create table if not exists credentials (
                id       integer primary key,
                password text
            );
        """)  # The lack of security is a feature ;)
        conn.commit()

    db = QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName(DB_NAME)
Esempio n. 12
0
    def __init__(self):
        # 从文件中加载UI定义
        # qfile=QFile(r'E:\Pycharm\armus1\ui\armus1.ui')
        # qfile.open(QFile.ReadOnly)
        # # qfile_stats.close()
        # # 从 UI 定义中动态 创建一个相应的窗口对象
        # # 注意:里面的控件对象也成为窗口对象的属性了
        # # 比如 self.ui.button , self.ui.textEdit
        # # loader=QUiLoader()
        # self.ui=QUiLoader().load(qfile)
        # self.ui.show()
        super(Stats,self).__init__()
        # self.ui=Ui_armus()

        # self.tableView.setModel()
        db=QSqlDatabase.addDatabase('QSQLITE')
        db.setDatabaseName('universitys.db')
        self.spider=Data_Spider()#爬虫连接
        self.session=DBSession()#数据库连接
        self.setupUi(self)
        # self.query=QSqlQuery(db)
        self.init_connect_db()
        # self.model = QStandardItemModel()  # 存储任意结构数据
        # self.model=QSqlQueryModel()
        self.comboBox.activated[str].connect(self.orderinfo)
        self.pushButton.clicked.connect(self.add_college)
        self.pushButton_2.clicked.connect(self.update_college)
        self.pushButton_4.clicked.connect(self.spiders_info)
        self.pushButton_5.clicked.connect(self.spider_info)
        # self.pushButton_3.clicked.connect(self.help_info)
        self.comboBox_2.activated[str].connect(self.link_collegeurl)
Esempio n. 13
0
    def build(model_type='select'):
        # Дополнительный путь к SQL драйверу
        QApplication.setLibraryPaths(['./platforms', './plugins'])

        db = QSqlDatabase.addDatabase('QSQLITE')
        db.setDatabaseName('db25.db3')

        if not db.open():
            print('БД не существует')
            sys.exit(-1)

        if model_type == 'query':
            return QSqlQueryModel(), db
        else:
            model = MyTableModel(None, db)

        # model = MyTableModel(None, db, model_type)

        if 'mytable' not in db.tables():
            query = QSqlQuery()
            query.exec_(
                "create table mytable(id text primary key, title text, podsborka text, izdelie text)")

        model.setTable('mytable')
        model.setEditStrategy(QSqlTableModel.OnFieldChange)

        model.select()
        model.setHeaderData(0, Qt.Horizontal, "id")
        model.setHeaderData(1, Qt.Horizontal, "title")
        model.setHeaderData(2, Qt.Horizontal, "podsborka")
        model.setHeaderData(3, Qt.Horizontal, "izdelie")

        return model
Esempio n. 14
0
    def __init__(self, db_type=':memory:'):
        self.db = QSqlDatabase.addDatabase('QSQLITE')
        self.db.setDatabaseName(db_type)

        if not self.db.open():
            print("Could not open database:", db_type)
            sys.exit(1)
Esempio n. 15
0
def createTable():
    if table_name in QSqlDatabase.database().tables():
        return

    query = QSqlQuery()
    if not query.exec_("""
        CREATE TABLE IF NOT EXISTS 'Conversations' (
            'author' TEXT NOT NULL,
            'recipient' TEXT NOT NULL,
            'timestamp' TEXT NOT NULL,
            'message' TEXT NOT NULL,
        FOREIGN KEY('author') REFERENCES Contacts ( name ),
        FOREIGN KEY('recipient') REFERENCES Contacts ( name )
        )
        """):
        logging.error("Failed to query database")

    # This adds the first message from the Bot
    # and further development is required to make it interactive.
    query.exec_("""
        INSERT INTO Conversations VALUES(
            'machine', 'Me', '2019-01-07T14:36:06', 'Hello!'
        )
        """)
    logging.info(query)
Esempio n. 16
0
    def build():
        # Дополнительный путь к SQL драйверу
        QApplication.setLibraryPaths(
            ['./platforms', './plugins',
             QApplication.libraryPaths()[2]])

        db = QSqlDatabase.addDatabase('QSQLITE')
        db.setDatabaseName('db_lib.db3')

        if not db.open():
            print('БД не существует')
            sys.exit(-1)

        model = MyTableModel(None, db)

        if 'mytable' not in db.tables():
            query = QSqlQuery()
            query.exec_(
                "create table mytable(id integer primary key autoincrement, author text, title text, year text)"
            )

        model.setTable('mytable')
        model.setEditStrategy(QSqlTableModel.OnFieldChange)

        model.select()
        model.setHeaderData(0, Qt.Horizontal, "id")
        model.setHeaderData(1, Qt.Horizontal, "author")
        model.setHeaderData(2, Qt.Horizontal, "title")
        model.setHeaderData(3, Qt.Horizontal, "year")

        return model
Esempio n. 17
0
 def open_database(database_name):
     """ """
     conn = QSqlDatabase.addDatabase('QSQLITE')
     conn.setDatabaseName(database_name)
     if not conn.open():
         msg1 = """Cannot open database, Unable to establish a database connection.
          Click Cancel to exit.     """
         alert(conn.databaseName() + msg1)
         sys.exit(1)
Esempio n. 18
0
def get_password() -> str:
    """Return the password from the database."""
    query = QSqlQuery(QSqlDatabase.database())
    query.exec_("select password from credentials")

    if query.next():
        password = query.value(0)
        query.finish()
        return password
Esempio n. 19
0
 def connect_db(self, fname):
     if fname.endswith(".db"):
         db = QSqlDatabase.addDatabase("QSQLITE")
         db.setDatabaseName(fname)
         db.open()
         self.ui.label_current_file.setText(fname)
         self.db = db
     else:
         self.ui.label_current_file.setText("Invalid File Selected")
Esempio n. 20
0
 def __init__(self):
     self.db = QSqlDatabase.database(Setup.DB_CONNECTION)
     if not self.db.isValid():
         self.db = None
         logging.fatal("DB connection is invalid")
         return
     if not self.db.isOpen():
         self.db = None
         logging.fatal("DB connection is not open")
         return
Esempio n. 21
0
    def __init__(self):
        self.db = QSqlDatabase.addDatabase('QSQLITE')
        self.db.setDatabaseName('DataBaseName.sqlite3')
        # self.db.setDatabaseName(':memory:')
        self.db.open()

        self.query = QSqlQuery()

        # Criando a tabela.
        self.create_table()
Esempio n. 22
0
def connectToDatabase(logger):
    database = QSqlDatabase.database()
    if not database.isValid():
        database = QSqlDatabase.addDatabase('QSQLITE')
        if not database.isValid():
            logger.error('Cannot add database')

    write_dir = QDir()
    if not write_dir.mkpath('.'):
        logger.error('Failed to create writable directory')

    # Ensure that we have a writable location on all devices.
    filename = '{}/chat-database.sqlite3'.format(write_dir.absolutePath())

    # When using the SQLite driver, open() will create the SQLite database if it doesn't exist.
    database.setDatabaseName(filename)
    if not database.open():
        logger.error('Cannot open database')
        QFile.remove(filename)
Esempio n. 23
0
def connectToDatabase():
    database = QSqlDatabase.database()
    if not database.isValid():
        database = QSqlDatabase.addDatabase("QSQLITE")
        if not database.isValid():
            logger.error("Cannot add database")

    writeDir = QDir()
    # writeDir = QStandardPaths.writableLocation(QStandardPaths.AppDataLocation)
    if not writeDir.mkpath("."):
        logger.error("Failed to create writable directory")

    # Ensure that we have a writable location on all devices
    fileName = writeDir.absolutePath() + "/chat-database.sqlite3"
    database.setDatabaseName(fileName)
    # open() will create the SQLite database if it doesn't exist
    if not database.open():
        logger.error("Cannot open database")
        QFile.remove(fileName)
Esempio n. 24
0
 def __init__(self) -> None:
     """The class initializer."""
     self.database: QSqlDatabase = QSqlDatabase()
     self.dbType: str = "sqlite"
     self.database_name: str = ""
     self.database_hostname: str = ""
     self.database_port: int = 0
     self.database_user_name: str = ""
     self.database_password: str = ""
     self.log = Logger().create_log()
     self.log.info("jmbde: init datacontext")
Esempio n. 25
0
    def __open_collection(self):
        collection = QFileDialog.getOpenFileName()[0]
        db = QSqlDatabase.addDatabase('QSQLITE')
        db.setDatabaseName(collection)
        db.open()

        self._model = QSqlTableModel(self, db)
        self._model.setTable('objects')
        self._model.select()

        self._view.setModel(self._model)
Esempio n. 26
0
 def connect_db(self, fname):
     if fname.endswith(".db"):
         db = QSqlDatabase.addDatabase("QSQLITE")
         db.setDatabaseName(fname)
         db.open()
         self.ui.label_current_file.setText(fname)
         self.db = db
         self.tables = self.db.tables()
         self.populate_combo()
         self.show_table()
     else:
         self.ui.label_current_file.setText("Invalid File Selected")
Esempio n. 27
0
def updateSqlModel(lecture_no):
    db = QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName("face.db")
    if db.open() is False:
        print("Failed opening db")

    query = "SELECT Student.id, rollno, name FROM Student JOIN "\
                "Attendance ON Student.id = Attendance.id "\
                "AND Attendance.date = (SELECT date('now')) "

    if lecture_no != 0:
        query += " AND Attendance.lecture_no = " + str(lecture_no)

    model.setQuery(query)
Esempio n. 28
0
    def deregisterStudent(self, id):
        self.db = QSqlDatabase.addDatabase("QSQLITE")
        self.db.setDatabaseName("face.db")
        if self.db.open() is False:
            print("Failed opening db")
        query = QSqlQuery(self.db)
        query.prepare("DELETE FROM Student WHERE id = :id")
        query.bindValue(":id", int(id))
        query.exec_()

        path = 'dataset'
        imagePaths = [os.path.join(path, f) for f in os.listdir(path)]
        [os.remove(x) for x in imagePaths if ('/' + str(id) + ".") in x]
        self.getThreadSignal(9, "Requested Record removed completely. Kindly retrain.")
Esempio n. 29
0
 def open_db(self):
     self.conn = QSqlDatabase.addDatabase("QODBC3")
     self.conn.setDatabaseName(
         "{{Driver={0}}};DSN={1};UID={2};PWD={3}".format(
             self.driver, self.name, self.user, self.__pass))
     if self.conn.open():
         self._output()
         return self.conn
     else:
         print("Была ошибка открытия базы через odbc с именем", self.name)
         self._output()
         print("Db and Qt errors with space / Ошибки Db и Qt через пробел",
               self.conn.lastError().text())
         return
Esempio n. 30
0
def init_and_check_db(db_path):
    db = QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName(get_dbfilename(db_path))
    db.open()
    tables = db.tables(QSql.Tables)
    if not tables:
        db.close()
        loadDbFromSQL(get_dbfilename(db_path), db_path + Setup.INIT_SCRIPT_PATH)
        return None, LedgerInitError(LedgerInitError.EmptyDbInitialized)

    if readSQL(db, "SELECT value FROM settings WHERE name='SchemaVersion'") != Setup.TARGET_SCHEMA:
        db.close()
        return None, LedgerInitError(LedgerInitError.WrongSchemaVersion)
    return db, LedgerInitError(LedgerInitError.DbInitSuccess)