====== 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'))