pyqt 使用sqlite

pyqt 使用sqlite

Select

database = QtSql.QSqlDatabase.addDatabase('QSQLITE')
database.setDatabaseName('trade.db')
database.open()

query = QSqlQuery()
query.prepare(select_sql)
query.addBindValue(self.getSymbolControl(index))
query.addBindValue(start_date.strftime('%Y-%m-%d %H:%M:%S'))
query.addBindValue(end_date.strftime('%Y-%m-%d %H:%M:%S'))
if not query.exec_():
    logging.error(str(query.lastError().text()))
else:
    while query.next():
       result.append({'high': query.value(0), 'low': query.value(1), 'open': query.value(2), 'close': query.value(3)})
database.close()

Insert

    def saveBarsDataToSqliteDb(self, bars, index, min_index):
        database = QtSql.QSqlDatabase.addDatabase('QSQLITE')
        database.setDatabaseName('trade.db')
        database.open()

        query = QSqlQuery()
        if bars is not None:
            insert_sql = 'insert into `stock_data`(`date`, `symbol`, `open`, `high`, `low`, `close`) values(?, ?, ?, ?, ?, ?)'
            query.prepare(insert_sql)
            if len(bars) > 0:
                bar = bars[0]
                current_date = datetime.datetime.now()
                bar_save_date = bar.date + datetime.timedelta(minutes=1)
                if current_date.minute != bar_save_date.minute:
                    logging.info('error data try to get next data:' + self.getSymbolControl(index))
                    if len(bars) > 1:
                        bar = bars[1]
                        bar_save_date = bar.date + datetime.timedelta(minutes=1)
                query.addBindValue(bar_save_date.strftime('%Y-%m-%d %H:%M:%S'))
                query.addBindValue(self.getSymbolControl(index))
                query.addBindValue(bar.high)
                query.addBindValue(bar.low)
                query.addBindValue(bar.open)
                query.addBindValue(bar.close)
                if not query.exec_():
                    logging.error(str(query.lastError().text()))
                else:
                    pass
        database.close()
        return result

Update

    def changeSqliteTradeStateAction(self, index, state=0):
        database = QtSql.QSqlDatabase.addDatabase('QSQLITE')
        database.setDatabaseName('../trade.db')
        database.open()

        query = QSqlQuery()

        query.prepare('update trade_list set `trade_or_not` = ? where symbol = ?')
        query.addBindValue(state)
        query.addBindValue(self.getSymbolControl(index).text())
        if not query.exec_():
            print(str(query.lastError().text()))
        else:
            print('update')
        database.close()

Delete

    def saveToSqliteDb(self):
        database = QtSql.QSqlDatabase.addDatabase('QSQLITE')
        database.setDatabaseName('trade.db')
        database.open()

        query = QSqlQuery()
        delete_sql = 'delete from trade_list where 1'

        query.prepare(delete_sql)
        if not query.exec_():
            logging.error(query.lastError().text())
        else:
            logging.info('delete records')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章