Bonjour,

Je débute en Python et donc en PyQt. Je souhaite implémenter un QTableView mais en exploitant des données venant d'une DB. J'ai bien vu sur le net que l'on peut utiliser par exemple QSqlDatabase. Mais le 'problème' est que je renvoie une liste d'objets 'Order'. Et dans ce cas, ça ne fonctionne pas. Quelqu'un à une idée ?

Merci d'avance.

Marc

Code du retour de ma requête sql :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
# retourne la liste des 'Orders'
    def loadOrders(self) -> list:
        orders = []
        try:
            connexion = sqlite3.connect("DB/orderManager.db")
            mainCurseur = connexion.cursor()
            mainCurseur.execute("""SELECT o.order_id, o.orderDate, e.employee_id, e.name, c.customer_id, c.lastName, c.firstName, c.phone, q.quotation_id, q.quoteNumber FROM order_ o
                LEFT JOIN employee e ON o.employee_id=e.employee_id
                LEFT JOIN customer c ON o.customer_id=c.customer_id
                LEFT JOIN quotation q ON o.quotation_id=q.quotation_id""")
            for o in mainCurseur:
                employee = Employee(o[3], o[2])
                customer = Customer(o[5], o[6], o[7], o[4])
                quotation = Quotation(o[9], o[8])
                itemOrderCurseur = connexion.cursor()
                itemOrderCurseur.execute("""SELECT io.order_id , io.nbrArticles, a.article_id, a.label FROM itemOrder io
                    LEFT JOIN article a ON io.article_id=a.article_id
                    where io.order_id = ?""", (o[0],))
                itemsOrders = []
                for io in itemOrderCurseur:
                    article = Article(io[3], io[2])
                    itemOrder = ItemOrder(article, io[1])
                    itemsOrders.append(itemOrder)
                # order = Order(strptime('%d/%m/%Y', o[1]), itemsOrders, employee, customer, o[0], quotation)
                order = Order(o[1], itemsOrders, employee, customer, o[0], quotation)
                orders.append(order)
            itemOrderCurseur.close
            mainCurseur.close()
        except sqlite3.Error as error:
            print("Failed to read data from sqlite table Order :", error)
        finally:
            if connexion:
                connexion.close()