DipiQuery // Outil de requêtage multi-bases de données

dipiquery01.png dipiquery02.pngdipiquery03.png
français anglais allemand espagnol italien portugais russe   (pour contribuer, rendez-vous sur la page des fichiers de langues)

Voilà des années que cet outil stagnait dans mes cartons alors que je l'utilise quasi quotidiennement. Pourquoi, allez-vous me demander ? Parce qu'à mes yeux il est loin d'être parfait. Alors pourquoi choisir de le publier maintenant, allez-vous me répondre ?! Tout simplement car je pense qu'il est assez mature et stable pour être mis entre les mains d'autres utilisateurs...

Bon, l'introduction est terminée, passons à quelques explications sur l'outil, notamment à quoi il sert.

DipiQuery est un petit logiciel de "requêtage". En d'autres termes, c'est un outil qui vous permettra d'écrire et exécuter des requêtes sur vos bases de données. Sur tous types de bases de données en fait. Qu'il s'agisse de simples fichiers textes formatés, de données contenues dans un fichier Microsoft Excel, de bases de données Microsoft Access, dBase ou de bases plus professionnelles tel que Microsoft SQL Server, Oracle, MySQL, PostgreSQL, SQLite, DB2, Informix ou autres, pour peu que vous installiez le pilote ODBC 32 bits correspondant.

DipiQuery est léger (le binaire principale ne pèse moins d'un Mo) et portable. Il requiert toutefois la présence d'un Framework .NET 4.5.2 minimum.

Voici ces principales fonctionnalités :

  • accès à tous types de SGBD
  • éditeur de requêtes en mode interface multi-documents (MDI)
  • éditeur avec colorisation syntaxique
  • éditeur avec repérage du niveau des parenthèses
  • explorateur de structure (détail des schémas/tables/champs d'une base de données)
  • synchronisation des déplacements dans les grilles de résultat
  • export du résultat possible vers Microsoft Excel si ce dernier est présent
  • et pas mal d'autres petites choses à découvrir à l'usage...

Grâce à cet outil sans prétention, vous pourrez accéder à vos bases de données, peu importe le SGBD, à partir de la même interface. Plus besoin de passer de Toad à PgAdmin en passant par PhpMyAdmin (hormis pour les fonctionnalités d'administration) ou autres outils dédiés à un seul SGBD.

La prise en main est simple, en conséquence il n'y a pas de manuel d'utilisation. L'outil est fourni avec un jeu de données et quelques requêtes, regroupés dans le sous-dossier test. Pour accéder à vos propres bases de données, utilisez la fenêtre de configuration de l'outil pour créer les sources de données (il y a des modèles dans lesquels vous aurez à remplacer les informations entourées de "#"). Bien entendu, il vous faudra au préalable installer les pilotes ODBC 32 bits correspondants ; si nécessaire vous devrez ajuster le nom du pilote défini par défaut dans le modèle...

N'hésitez pas à poser vos questions ici-même si vous rencontrez des problèmes.

Une dernière chose : l'exécution des requêtes ne peut pas passer à travers un proxy.

Pour la petite histoire :

  • j'ai développé la première version de cet outil en 1995, en VisualBasic 3 à l'époque. Il portait alors le nom de "Cervo" pour Conception et Exécution de Requêtes Via Odbc.
  • peu après, j'ai porté le code en VisualBasic 4, version 16bits, l'outil devant fonctionner aussi bien sous Windows NT4 que sous Windows 3.11. Cette version était encore utilisée il y a quelques années, sous Windows XP. Elle a d'ailleurs subi des évolutions jusqu'à il y a peu de temps...
  • parallèlement, j'ai entrepris une ré-écriture totale de l'outil en VisualBasic 5. Doté d'une interface multi-documents et de la colorisation syntaxique notamment, la diffusion de ce "Cervo32" est restée quasi confidentielle car cette version ne couvrait pas toutes les fonctionnalités de son ainée.
  • plus récemment, j'ai profité de mes vacances d'été 2014 pour ré-écrire à nouveau l'outil, en C# cette fois. Quasi iso-fonctionnelle à Cervo32 pour le moment, elle va continuer à évoluer en fonction des besoins exprimés. La version précédente (Cervo32) est abandonnée, idem pour la version 16 bits (en VB4) qui était toujours en production à mon boulot jusqu'à l'arrivée récente de Windows 7.
  • enfin, en juillet 2017 j'ai décidé de publier cet outil sur mon site, après l'avoir rebaptisé DipiQuery.

Attention : certains antivirus réagissent au téléchargement de la plupart de mes outils développés en .NET dont cet outil fait partie, annonçant une menace. Cela est lié au fait que ces applis sont "obfusquées" pour ne pas permettre leur décompilation. Une méthode également utilisée par les créateurs de virus, malheureusement. Ceci explique également le score généralement inquiétant à l'analyse VirusTotal. Inutile de me le signaler, je suis au courant. Je vous certifie que tous mes produits sont sains, alors soit vous me faites confiance, soit vous devrez vous passer de cet outil. pas ma faute


Télécharger Télécharger ce logiciel (version portable ZIP)


Liens vers les pages de téléchargement des pilotes ODBC des principaux SGBD (choisir la version x86 / 32 bits) :


Date de création : 26/08/2017 @ 16:35
Dernière modification : 30/08/2020 @ 20:19
Catégorie : - Aide à l'administration
Page lue 64 fois
 

Réactions à cet article

Réaction n°6 

par Jacques le 23/04/2018 @ 22:07

Bonjour Damien,coucou

je reviens vers toi puisque, n'ayant pas pu mettre en oeuvre DipiQuery je me débrouillais ( assez mal d'ailleurs par des astuces merdiques ) mais là je voudrais que ton travail sme soit utile et je t'en remercie par avance.

Mais voici le message que j'ai lors de test :

cligne

voici mon fichier test-mysql.dqy

[Config] Source=Test MySql Requête=select * from litho_donnees.txt

Le fichier config DipiQuery

[Config] FenêtreAgrandie=False FenêtrePosition=193,81 FenêtreTaille=1213,698 MRU=C:UsersJacquesDownloadsRéseauDipiQuery100Testtest-mysql.dqyC:UsersJacquesDownloadsRéseauDipiQuery100Testtest-dbase.dqyC:UsersJacquesDownloadsRéseauDipiQuery100Testtest-excel.dqyC:UsersJacquesDownloadsRéseauDipiQuery100Testtest-text2.dqy RépertoireParDéfaut=C:UsersJacquesDownloadsRéseauDipiQuery100Test

[Sources] Test text=Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=.testtext;Extensions=csv,txt,log Test Access=Driver={Microsoft Access Driver (*.mdb)};Dbq=.testaccesstest.mdb Test Dbase=Driver={Microsoft dBase Driver (*.dbf)};Dbq=.testdbase Test Excel=Driver={Microsoft Excel Driver (*.xls)};Dbq=.testexceltest.xls Test MySql=Driver={SQL Server};Dbq=.testMySqllitho_donnees.txt

et une partie de mon fichier litho_donnees.txt

(1, 'amethyste.png', 'AMÉTHYSTE', 'le cristal apaisant', '', 'violet', '', 'Cristal de protection', 'tous', 'C’est le cristal apaisant. Cristal calmant naturel par excellence, favorise aussi bien la méditation que le sommeil. Il agit contre les maux de tête, les douleurs d’oreilles, la sinusite, les tensions cérébrales. Apaise les angoisses, aide aux soins des maladies sanguines.', 'En eau vibrée (une nuit dans un verre d’eau pure – type Evian) bue le matin, elle sera efficace pour le sevrage de l’alcool.', '', 'En eau vibrée (une nuit dans un verre d’eau pure – type Evian) bue le matin, elle sera efficace pour le sevrage de l’alcool.', 'Sur le plan spirituel elle accroît les perceptions psychiques et rend ainsi le porteur perméable aux influences cosmiques et divines.', 'Eau claire 15 minutes et exposition 2 heures au Soleil', '', '', '', 'On en trouve en Bretagne.'), (2, 'agathe.png', 'AGATHE', 'géode d''agate ou agathe cyclope', 'Brésil', 'Toutes les couleurs sont représentées dans ce cristal', '', 'Pierre du libre arbitre, le cristal du 3ème oeil', '', 'Sont des agates spécifiques : voir aussirnCalcédoinernCornalinernAventurinern', '', 'Bonne pierre oculaire, cette agate aide le sang et les liquides à mieux nourrir l''œil.rn', '', 'Ce cristal active le centre frontal et stimule la vision éthérique. rnrn', 'Eau claire 15 minutes et exposition 2 heures au Soleil', '', '', '', ''), (3, 'aragonite.png', 'ARAGONITE', 'La pierre des os', 'Séfrou au Maroc', ': peut être incolore – blanc – beige pêche – marron', 'carbonate de calcium CaCO3', 'Pierre des os', 'Pierre du premier chakra ou du c?ur', 'Pierre des os, elle partage ce privilège avec le corail. Elle agit sur tout le squelette et les dents.rnrn', 'Pierre du premier chakra. Cependant les aragonite en étoile doivent être de préférence utilisées sur le chakra du Cœur comme outil de centrage sur tout le squelette.', '', '', '', 'Eau distillée, pas de sel, amas de quartz, soleil', '', '', '', 'Le mien est beige pêche'), (4, 'aventurine.png', 'AVENTURINE', 'pierre apaisante', '', 'vert', '', '', '', 'Elle renforce le self-contrôle et calme les enfants surexcités comme les personnes qui cèdent vite à la colère.rnElle calme le stress émotionnel, et s’avère utile pour le cœur.rnElle améliore la digestion, très efficace pour tous les problèmes digestifs.rnElle rééquilibre la sphère hépatique et prévient de la chute de cheveux.rn', 'C’est une pierre très douce qui agit efficacement sur tous les problèmes dermatologiques de type acné, eczéma, allergie, etc.rn', '', '', 'Sur le plan spirituel, cette pierre développe la tolérance et un jugement sain.', '', '', '', '', ''), (5, 'calcedoine.png', 'CALCEDOINE', '', '', '', '', 'pierre d''expression, d’inspiration et d’éloquence', '', 'Particulièrement utile pour les problèmes de cou, la gorge, les amygdales, les cordes vocales,  la voix, la tyroïde.rnElle a également une action apaisante sur le système nerveux.', 'Pour aider les enfants qui bégayent.', '', 'elle aide à la verbalisation des émotions. ', '', 'Eau claire et Soleil', '', '', '', '')

tu peux me guider vers une solution que je comprenne ?

merci beaucoup.

[réponse de damien, le 24/04/2018 à 10h29]

Au premier coup d'oeil, je pense que c'est juste parce que tu n'as pas renseigné les infos sur ton fichier de données dans le fichier schema.ini qui se trouve dans le dossier .\test\text\ (emplacement de ton fichier de données en principe). Il contient des explications et quelques exemples sur le format à utiliser.

Si tu veux, je peux te préparer la section à ajouter mais peux-tu me faire parvenir ton fichier de données (car le simple copier/coller supprime des caractères de contrôles invisibles mais nécessaires pour la séparation des données) afin que je puisse vérifier que ça fonctionne ?

Oups, j'ai répondu un peu vite...

Je vois que tu as sélectionné la source "Test MySql" au lieu de "Test Text", puisque ta requête porte sur un fichier de données au format "text"... A moins que tu aies déjà "déversé" ce fichier text dans ta base MySql...

Et puis ta source "Test MySql" utilise le driver pour SQLServer... du coup c'est normal que rien ne fonctionne !


Réaction n°5 

par Christophe le 16/04/2018 @ 11:46

Bonjour Damien,

Je remarque un comportement étrange dans l'exportation des résultats vers EXCEL.

La date est bien affiché dans ton logiciel, mais lors l'export vers EXCEL (F6), ce dernier n'inverse le mois et le jour si mon jour est inférieur à 13. oups

Cette anomalie se produit pour Postgre SQL et Access où mes colonne stockant des dates sont indiquées au format date.

D'ailleurs lors de l'export, peut import le choix (EXCEL ou fichier texte), mes dates qui sont en JJ/MM/AAAA sont exportées en JJ/MM/AAAA HH:MM:SS. L'heure étant alors 00:00:00.

Pour mes bases où la date est stockée en texte (AAAA-MM-JJ) ce format est affiché dans le résultat puis converti automatiquement par EXCEL lors de l'export.

Je ne sais si un correctif est possible. Actuellement, quand j'ai besoin d'exporter sous EXCEL, je passe par des copier/coller ou l'export en fichier texte avec ;. Puis réalise une action manuelle.

Ce message a pour but de faire partager mon expérience aux autres utilisateurs, d'alerter sur cette anomalie et de donner une solution de contournement.

Cordialement,

[réponse de damien, le 17/04/2018 à 13h14]

Les exports de dates peuvent effectivement être problématiques, je suis au courant. Mais le souci provient d'Excel qui essaye d'interpréter les valeurs lues dans le fichier texte que je lui demande d'importer.

Pour régler ce problème il faudrait lui imposer de prendre en compte les valeurs telles qu'elles apparaissent dans le fichier. Je vais me repencher là-dessus quand j'aurai un peu de temps. Avec éventuellement l'ajout d'une option pour qu'Excel importe ces dates en format texte... mais si tu es amené à faire des calculs sur ces valeurs ensuite, ça posera d'autres soucis.

Je crains qu'il n'y ait pas de solution miracle, malheureusement...


Réaction n°4 

par Christophe le 02/03/2018 @ 10:36

Bonjour,

Je viens de mettre en service cet applicatif.

Après avoir mis un peu de temps pour comprendre la configuration. Il fallait que je me rappelle comment paramétrer les liens ODBC pas ma faute

Je trouve cet outil bien sympathique. :D

Quand on a plusieurs système de base de données, c'est agréable de pouvoir les attaquer avec un seul outil.

Donc pour finir mon message : Merci. cool

[réponse de damien, le 02/03/2018 à 17h00]

C'est justement le but, de pouvoir utiliser la même appli pour attaquer divers SGBD ; tant mieux s'il est atteint ! cligne

Pour la syntaxe des chaines de connexion il y a des "modèles" qui sont fournis, où il y a juste à remplacer les parties entre "#".


Réaction n°3 

par Dadasuprem le 23/09/2017 @ 10:36

Hello, coucou

Petit retour concernant la connexion a PGSQL (bien plus rapide que pgAdmin en passant que pgAdmin v3 et la pgAdminv4 j'en parle même pas...)

Voici la conf utilisé si ça peut aider :

Driver={PostgreSQL UNICODE} Server=IP_OR_NS Database=BDD_NAME Port=Port Uid=%login% Pwd=%password%

L'historique fait gagner énormément de temps si vous effectuez des requêtes répétitives (6 pour ma part). Mais je n'ai pas trouvé de réglages pour en gérer le nombre min/max.

Est-ce qu'il y a une limite dans la MRU du fichier ini ?

Merci.

[réponse de damien, le 24/09/2017 à 10h17]

Il est effectivement préférable d'utiliser le driver {PostgreSQL Unicode} au lieu de {PostgreSQL} tout court qui est proposé dans le modèle (liste déroulante en haut à droite de la fenêtre "Configuration source").

En ce qui concerne le nombre de MRU (derniers fichiers utilisés), il est actuellement figé à 10 entrées mais je suis d'accord sur le fait que cette valeur pourrait être paramétrable. C'est une valeur choisie arbitrairement, sans contrainte technique.

Je corrigerai ces deux points dans la prochaine version. cligne


Réaction n°2 

par jacques le 02/09/2017 @ 11:49

Bonjour Damien,coucou

merci pour ce nouveau logiciel.

Je ne sais même pas comment le faire fonctionner.sifflote

J'ai des bases MySql.

mais je ne sais même pas faire marcher les "*.test" !!! portnawak

j'ai mis assez de smilleys ? cligne

[réponse de damien, le 02/09/2017 à 13:03]

C'est assez simple en fait.

Pour commencer, tu peux ouvrir les requêtes d'exemple fournies dans le dossier test. Il y en a une qui "attaque" une base Microsoft Access, une autre un fichier Microsoft Excel, un fichier dBase et les deux dernières accèdent à des fichiers text formatés.

Ensuite, pour "attaquer" tes propres bases de données, il te faudra configurer les sources de données correspondantes via la fenêtre de configuration de l'application. Mais en prérequis tu devras avoir installé le pilote ODBC (32 bits) correspondant... Une fois tout ceci fait, tu pourras écrire et exécuter tes requêtes...

N'hésite pas à me recontacter si tu as besoin d'explications complémentaires.


Réaction n°1 

par Dadasuprem le 26/08/2017 @ 23:40

coucou

Très bonne idée cet outil ! Merci Damien.

Je vais le tester demain sur MSSQL et Postgre mais je suis quasiment certain qu'il sera plus réactif que les outils fourni par les éditeurs de ces BDD. cligne

[réponse de damien, le 27/08/2017 à 09h01]

Merci pour ces encouragements.

Enfin bon, ne t'attends quand même pas à quelque chose d'extraordinaire. C'est juste un petit outil sans prétention qui a pour but principal de pouvoir "attaquer" différents SGBD sans devoir faire appel à autant d'outils... et ce gratuitement bien sûr.