Cette application est avant tous une console offrant une coloration syntaxique et une autocomplétion permettant de dialoguer interactivement avec le SGBD. Elle propose également des outils pour faciliter l'édition de requêtes :
- Affichage du MLD/R de la base de données ;
- Affichage du code source des tables ;
- Affichage du code source des triggers ;
- Éditeur de tables ;
- Éditeur d'ORM.
Client(2, "Maurice" )
au lieu de :
mon_curseur.execute("INSERT INTO CLIENT VALUES (2, 'Maurice') ;")
Ohraimeur vise à combler un vide dans le petit monde de SQLite3, en proposant un logiciel simple, rapide et fonctionnel. Si vous le souhaitez, le développeur principal du projet cherche de l'aide dans son développement et toute aide sera la bienvenue.
Aller plus loin
- Télécharger (120 clics)
- Site principal (73 clics)
- Screenshot (83 clics)
# Pas de pickles !
Posté par Anonyme . Évalué à 3.
J'ai le message suivant :
File "ohraimeur", line 380, in
start()
File "ohraimeur", line 368, in start
root = ClientWindow()
File "ohraimeur", line 74, in __init__
file_con = open( self.path_file_con, "rb" )
IOError: [Errno 2] No such file or directory: '/home/olivier/.ohraimeur/data.pkl'
Comment initialiser le fichier ~/.ohraimeur/data.pkl ?
[^] # Re: Pas de pickles !
Posté par vincent_mbg . Évalué à 3.
Je suis désolé si l'installeur ne place pas toujours le fichier data.pkl
pour y remédier il faut lancer le script remise_a_zero.py dans /ohraimeur-0.5/share/ohraimeur/
cd /ohraimeur/share/ohraimeur/
python remise_a_zero.py
puis saisir 1 et faire Entrée.
[^] # Re: Pas de pickles !
Posté par Anonyme . Évalué à 1.
J'ai également essayé une autre technique. Tester l'existence du fichier data.pkl. (avec une structure try/except) Effet secondaire utile: cela évite de devoir initialiser le fichier data.pkl.
try:
with open( self.path_file_con, "rb" ) as file_con:
self.connexions_requetes = pickle.loads( file_con.read() )
except:
self.connexions_requetes = []
[^] # Re: Pas de pickles !
Posté par vincent_mbg . Évalué à 1.
sauvegarder les dernières requêtes saisies dans data.pkl mais ne va pas trouver une structure
adapté.
...]
except:
self.connexions_requetes = []
file_con.write( pickle.dumps( [] ) )
[^] # Re: Pas de pickles !
Posté par Anonyme . Évalué à 1.
[^] # Re: Pas de pickles !
Posté par vincent_mbg . Évalué à 2.
C'est tout à fait possible, mais le module searchconnect.py n'existant plus sur la version en développement, les choses étaient différentes de mon côté.
# Pourquoi ce nom ?
Posté par Kangs . Évalué à 1.
Ne voyant pas trop le rapport avec sqlite il y en a peut être un avec python.
Peux tu m'éclairer ? (Je suis intrigué)
[^] # Re: Pourquoi ce nom ?
Posté par Thomas . Évalué à 4.
[^] # Re: Pourquoi ce nom ?
Posté par vincent_mbg . Évalué à 3.
C'est dû au fait que c'est un logiciel qui fait des ORM donc un orm-eur.
# Bug ?
Posté par Kangs . Évalué à 1.
>>
>>Client(2, "Maurice" )
>>au lieu de :
>>mon_curseur.execute("INSERT INTO CLIENT VALUES (2, 'Maurice') ;")
La non utilisation de 'bind variables' c'est due à un bug de python ou de l'ORM ?
(sqlite supporte très bien les requêtes paramétrées)
[^] # Re: Bug ?
Posté par monde_de_merde . Évalué à 2.
Python supporte évidement de genre de sécurité bien pratique :
>> mon_cursor.execute('insert into Client values(? ,?)', (2, 'Maurice'))
[^] # Re: Bug ?
Posté par Kangs . Évalué à 1.
Ce n'est pas qu'une question de sécurité.
# Un client par base...
Posté par Sytoka Modon (site web personnel) . Évalué à 4.
Pourquoi à chaque fois une nouvelle application pour permettre l'édition de base de données et non pas une application plus générique ?
J'ai l'impression que ce que je fais avec ce genre d'application est générique les rares fois ou je m'en sers.
Pourquoi ne pas développer sous forme de greffon les parties qui ne le seraient pas ? Par exemple, dans un programme Perl, j'utilise toujours DBI qui est générique et jamais une interface dédiée. D'ou vient ce besoin de lier un client sur une base donnée ?
[^] # Re: Un client par base...
Posté par vincent_mbg . Évalué à 2.
Pour le moment je cherche à faire en sorte que Ohraimeur puisse tourner sur des versions de Python allant de 2.6 à 3.1. Le problème est que pour le moment peu d'adaptateurs ont étés portés en 3.1. Les subtiles différences entre les SGBD et la norme SQL y sont également pour beaucoup. Par exemple, Sqlite3 ne permet pas la suppression d'un champ d'une table. L'IHM pour le "Alter Table" est donc différente que celle que j'aurais pu développer pour un autre SGBD.
Il est vrai que Ohraimeur n'est pas pratique si l'on souhaite l'utiliser comme éditeur SQL générique. Je prends en compte cette remarque. Dans la prochaine version d'Ohraimeur je développerais plus la fenêtre d'édition de la dernière requête. J'ajouterais également une fonctionnalité pour extraire la BDD sous forme de requêtes SQL.
[^] # Re: Un client par base...
Posté par GeneralZod . Évalué à 3.
http://code.google.com/p/gsql/wiki/GSQLvsLIBGDAnMERGEANT
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.