Bonjour, voila je recherche à mettre des conditions sur mon programme python dans le c.execute() voila un exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import sqlite3
conn = sqlite3.connect('TABLES.db')
c = conn.cursor()
 
def ET(et_type, t):
    """Etablissement en fonction du type"""
    c.execute(
    """SELECT nom FROM ETABLISSEMENT, REFERE
    WHERE idnomprime = ETABLISSEMENT.id
    CASE WHEN """ + str(t) + """ > 0 THEN arrondissement = """ + str(t) + """AND idtype = """ + str(et_type) +"""
        ELSE  idtype = """ + str(et_type) +"""
    END;"""
    )
    return c.fetchall()
Forcé de constater que cela ne fonctionne pas, le principe y est. En fait si je trouve le moyen de mettre des conditions sur des variables venant de python dans mon sql pour qu'il ajoute ou non une requete ("AND..." dans le WHERE) je gagnerais énormément de temps sinon je devrais recopier quasiment les mêmes codes sql en fonction des conditions écrites dans le python
(if...: c.ecute(...)
elif c.execute(...) ...),
or j'ai 8 variables, donc si je fais comme cela j'ai 8! = 40 000 codes sql à peine différent à réaliser!