47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
|
from PySide6 import QtWidgets, QtSql
|
|||
|
|
|||
|
|
|||
|
class Data:
|
|||
|
def __init__(self):
|
|||
|
super(Data, self).__init__()
|
|||
|
|
|||
|
def create_connection(self):
|
|||
|
db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
|
|||
|
db.setDatabaseName('calc3d')
|
|||
|
|
|||
|
if not db.open():
|
|||
|
QtWidgets.QMessageBox.critical(None, 'Error', 'Не найдена база данных калькулятора',
|
|||
|
'Cancel',
|
|||
|
QtWidgets.QMessageBox.Cancel)
|
|||
|
return False
|
|||
|
|
|||
|
query = QtSql.QSqlQuery()
|
|||
|
query.exec("CREATE TABLE IF NOT EXISTS printers (ID integer primary key autoincrement,"
|
|||
|
"Printer_name VARCHAR(30) unique, Price_printer integer, Printer_power integer, kilowatt_price)")
|
|||
|
return True
|
|||
|
|
|||
|
def execute_query_with_params(self, sql_query, query_values=None):
|
|||
|
query = QtSql.QSqlQuery()
|
|||
|
query.prepare(sql_query)
|
|||
|
|
|||
|
if query_values is not None:
|
|||
|
for value in query_values:
|
|||
|
query.addBindValue(query_values)
|
|||
|
query.exec()
|
|||
|
|
|||
|
|
|||
|
def add_settings(self, kilowatt_price, ):
|
|||
|
pass
|
|||
|
|
|||
|
def add_printer(self, printer_name, printer_power, price_printer):
|
|||
|
sql_query = "INSERT INTO printers (Printer_name, Printer_power, Price_printer) VALUES (?, ?, ?)"
|
|||
|
self.execute_query_with_params(sql_query, [printer_name, printer_power, price_printer])
|
|||
|
|
|||
|
def edit_printer(self, id, printer_name, printer_power, price_printer):
|
|||
|
sql_query = "UPDATE printers SET Printer_name=?, Printer_power=?, Price_printer=? WHERE ID=?"
|
|||
|
self.execute_query_with_params(sql_query, [id, printer_name, printer_power, price_printer])
|
|||
|
|
|||
|
def delete_printer(self, id):
|
|||
|
sql_query = "DELETE FROM printers WHERE ID=?"
|
|||
|
self.execute_query_with_params(sql_query, [id])
|