Bonjour,

Je suis à la cherche d’une solution au problème suivant.
J’ai imaginé une application qui, pour l'accès à une base de données, propose à l’utilisateur de choisir entre Sqlite ou mySql.
Les formulations des requêtes n’étant pas identiques, on peut (entre autre) écrire chaque requête avec un test sur le type de bdd utilisé (voir script ci-dessous). Par contre, si l’on veut faire du ‘try/except’, je vois pas comment formuler le except pour que ce soit dépendant de la base de données installée…
Actuellement, j’ai 2 modules différents et j’importe l’un ou l’autre selon la bdd utilisée.
Mais, peut-être existe-t-il une autre solution*?
Merci de votre attention.
Belle journée à vous.

Mike

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
val = 0
try:
    cursor = connect.cursor()
    if DB == "Sqlite":
        query = """SELECT col2 FROM table WHERE col1 = ?"""
    else:
        query = """SELECT col2 FROMtable WHERE col1 = %s"""
    cursor.execute(query, ("1",))
    record = cursor.fetchone()
    for row in record:
        val = row[0]
 
#except Error as error:                      # Sqlite
except mysql.connector.Error as error:       # mySql
    print(error)
    val = -1
 
finally:
    cursor.close()