GNT sans publicité, site mobile, fonctionnalitées exclusives...

Python et Firebird embarqué

Le
Bogdahn
Bonjour,

J'ai dans l'idee de developper une petite application de gestion en
python. Il y a 12 tables pour l'instant et je comptais utiliser Sqlite
que je trouve tres sympa et qui je trouve s'accorde bien avec python,
mais sqlite ne gere pas les FK, faut les coder en trigger, c'est type
less etc, donc j'ai fini par lacher l'affaire et me tourner vers
firebird (pour ceux qui ne connaissent pas trop c'est un SGBD basé sur
Interbase 6 opensource de borland), le SGBD en lui même répond a toutes
mes attentes et meme plus
En utilisant un sgbd client serveur je perdais l'interet du fichier
unique sqlite et de son architecture non C/S, ce que je trouvais
parfait pour ma petite appli dont la base de donnée ne sera pas
attaquée par plusieures personnes. Firebird propose une version
Desktop, c'est a dire un fichier unique piloté par une DLL (à la sqlite
donc), c'est donc avec interet que je me suis tourné vers cette
solution pour l'environnement windows (partant du fait que les
utilisateurs winwin n'aiment pas trop avoir à installer un serveur, que
c'est disproportionné etc et que les utilisateurs unix ont des chance
d'avoir une base de donnée déja installé et peut etre meme Firebird
justement).

Là je me heurte a un probleme : les dev python qui attaquent le sgbd
desktop firebird, j'en ai pas trouvé :)

Je pense que pour les utilisateurs linux de mon application, ca ne
devrait pas trop poser de probleme, je leur laisse la possiblité de
configurer eux meme leur sgbd et ca roule en utilisant Python Database
API, par contre je ne sais pas trop comment faire pour utiliser la
version desktop de firebird sous windows, donc je cherche des retours
d'expérience.

Si vous avez une solution pour faire un truc unique pour les deux
cibles (windows et unices) je suis intéréssé, par contre il faut que ca
reste sur un modele relationnel.

Ma question est donc : comment attaquer firebird desktop avec python
sans partir dans du win32.

Merci :)
Lire les 23 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 5
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
hg
hg
Le #629283
Bogdahn wrote:

Ma question est donc : comment attaquer firebird desktop avec python
sans partir dans du win32.


Et ce truc là ?
http://vsbabu.org/mt/archives/2003/...ndows.html

hg

William Dode
Le #620461
On 20-05-2007, hg wrote:
Bogdahn wrote:

FK


Tu devrais lire celà:
http://www.sqlite.org/cvstrac/wiki?...eyTriggers


C'est curieux que sqlite ne traite toujours pas les FK, surtout qu'ils
reconnait la syntaxe et qu'il pourrait ne serait-ce que générer les
triggers qui vont bien. Quelqu'un sait pourquoi ce n'est pas le cas ou
si c'est prévu ?
Pareil pour les autres "petits trucs" comme retirer un champ d'une table
etc...

--
William Dodé - http://flibuste.net
Développeur informatique indépendant


Bogdahn
Le #620460
Bogdahn wrote:

FK


Tu devrais lire celà:
http://www.sqlite.org/cvstrac/wiki?...eyTriggers


hg


Bonjour,

J'ai deja lu ce document, pour preuve je vais m'auto-quote :
Bogdahn à écrit : "mais sqlite ne gere pas les FK, faut les coder en
trigger"

J'ai quand meme pas mal regardé du coté sqlite, c'est un sgbd que
j'apprecie bcp, bien plus que les Access et autres (meme si on peut pas
vraiment parler de sgbd), mais il y a des limitations, qu'on peut
pallier en code certe, mais tant qu'a faire je prefere prendre un sgbd
plus adapté c'est pour ca que j'ai regardé du coté de firebird.

Merci tout de meme :)


Bogdahn
Le #620459
C'est curieux que sqlite ne traite toujours pas les FK, surtout qu'ils
reconnait la syntaxe et qu'il pourrait ne serait-ce que générer les
triggers qui vont bien. Quelqu'un sait pourquoi ce n'est pas le cas ou
si c'est prévu ?
Pareil pour les autres "petits trucs" comme retirer un champ d'une table
etc...


A mon avis c'est a cause du but du logiciel. Sqlite n'est pas un sgbd
au plein sens du terme, il est concu pour etre un replacement des
fonctions de maniputations de fichier, le sql est un langage extrement
pratique et simplifie grandement la vie, sqlite permet d'avoir cette
simplicité dans un programme en embarqué, l'objectif est donc
different. Supporter les FK va prendre beaucoup de ressources (regardez
la difference entre innodb et myisam par exemple) tout en etant peu
utile pour le but premier du logiciel. Pour ce qui est de retirer un
champ d'une table, c'est deja faisable, des scripts comme Sqlitemanger
le font...C'est de la bidouille, comme les FK par trigger.

Je pense d'ailleur que le but de l'auteur du logiciel etait d'avoir un
moteur le plus rapide possible et qu'il laisse aux utilisateurs avancés
l'oportunité d'aller plus loin, d'où les triggers évolués, c'est vrai
qu'on peut vraiment faire beaucoup de choses avec : FK, typage (pas
preset dans sqlite de base) etc.

Publicité
Suivre les réponses
Poster une réponse
Anonyme