====== Firebird 2.5 - Legacy "fdb" ====== ^ Version à utiliser si le serveur Firebird est 2.5 ^ * [[https://fdb.readthedocs.io/en/v2.0/|FDB - The Python driver for Firebird]] * [[https://fdb.readthedocs.io/en/latest/usage-guide.html|Usage guide]] :-) ===== Installation du client Firebird ===== **Sous Linux** Si le système n'a pas encore **Firebird Client Library** : sudo apt install libfbclient2 **Sous Windows** Utiliser l'installateur du client Firebird 32 ou 64 bits. **Autre solution:** extraire le fichier **fbclient.dll** depuis le .ZIP téléchargeable depuis cette addresse : * [[https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/Firebird-2.5.9.27139-0_x64.zip]] Ensuite, spécifier le chemin vers le fichier **.dll** lors de la connexion (voir ci-dessous). ===== Installation du module fdb ===== pip install fdb ===== Connexion ===== import fdb con = fdb.connect( dsn = 'localhost:c:\\databases\\facturation.fdb', user = 'sysdba', password = 'masterkey', charset = 'UTF8' # specify a character set for the connection ) En spécifiant le chemin vers **fbclient.dll** : import sys, fdb con = fdb.connect( dsn = 'localhost:c:\\databases\\facturation.fdb', user = 'sysdba', password = 'masterkey', charset = 'UTF8', # specify a character set for the connection fb_library_name = sys.path[0] + '\\fbclient.dll' ) ===== Requête Select ===== Exécuter la requête : cur = con.cursor() cur.execute(""" select id, nom, adresse from clients where nom containing 'bert'; """) ==== Récupérer les valeurs sous forme de liste de tuples ==== for row in cur.fetchall(): print(row) (1, 'Albert Durant', '3, Rue des Hirondelles') (2, 'Bertrand Dupont', '2, Rue des Hiboux') (3, 'Robert Legrand', '84, Rue des Renards') ... ==== Récupérer les valeurs sous forme de liste de dictionnaires ==== result = [] for row in cur.itermap(): result.append({ 'id' : row['ID'], 'nom' : row['NOM'], 'adresse': row['ADRESSE'] }) ===== Divers ===== Script de création d'une table : t = con.schema.get_table('LZREG') print(t.get_sql_for('create'))