Jump to content

1 Screenshot

About This File

SQL_Formulator

Projet :

Faciliter la création de requêtes SQL dans FileMaker pro et plus particulièrement dans la fonction calcul ExcecuterSQL.

Moyen :

SQL_Formulator est une application d’aide à la création de requêtes SQL de base. A partir de rubriques de Filemaker pro que l’utilisateur renseigne, il calcule la formule de ExecuterSQL en appliquant la syntaxe adaptée. Une évaluation de ce calcul affiche le résultat.

Limites :

Du fait de la fonction calcul de FileMaker pro ExécuterSQL, seule est utilisée l’instruction SELECT avec toutes ses clauses et presque tous les opérateurs relationnels (hormis EXISTS, ANY et ALL) ainsi que les fonctions UNION et JOIN.

Le calcul ne peut se faire qu’à partir des tables présentes sur le graph des liens, avec des tables du fichier FileMaker ou des tables de sources de données externes.

Application

SQL_Formulator est un fichier FileMaker pro autonome. Il n’utilise aucun plug-in. L’utilisateur défini au travers de rubriques FileMaker la table choisie, les rubriques concernées et les fonctions, opérateurs et constantes voulues. Avec ces informations la requête SQL s’affiche et se calcule.

Syntaxe :

Dans le calcul de la formule, les noms des rubriques et des tables s’écrivent de manière protégée. Ce qui fait que les noms des fichiers sources n’ont aucune contrainte d’écriture et qu’il n’est pas nécessaire d’en redéfinir le nommage (espaces dans les noms et/ou underscore “_” en première lettre). Cette protection fait que l’on peut aussi utiliser les mots réservés de SQL.

Dans les calculs utilisant l’instruction WHERE, l’application reconnait les valeurs numériques des valeurs texte ou autres.

Formule :

La formule ExecuterSQL s’affiche dans une rubrique texte qui peut être remaniée à la main. Elle peut ainsi être corrigée ou enrichie avec d’autres éléments du language SQL.

L’utilisateur peut recopier la formule pour la coller dans un autre fichier

Résultat :

Le résultat s’affiche dans une rubrique texte.

Il peut être exporté au format texte tabulé ou csv ou encore être réimporté dans une table d’import.

Aide :

Un bouton ? permet d’accéder à un écran d’aide.

Quelques fonctions SQL de base sont détaillées dans l’écran Syntaxe


What's New in Version 7   See changelog

Released

  • 27/9/2014
  • 4/10/2014 Execute SQL et Gestion des dates
 Share


User Feedback

Recommended Comments

Tu ne passes pas par les paramètres, et malheureusement ça foire.

Par exemple, si tu ajoutes un champ date à ta table Departement, tu ne peux pas requêter en comparant ta date dans un WHERE parce qu'ils se sont emmêlé les pinceaux chez FMI.

Donc si tu compares une date dans une clause WHERE avec le format normal YYYY-MM-DD, par exemple

ExecuteSQL ( "SELECT numero FROM departements WHERE maDate > '1950-02-01'" ; "" ; "" ) => nada (il faut passer la date selon le format du fichier, ce qui est une aberration)

tu dois faire :

ExecuteSQL ( "SELECT numero FROM departments WHERE maDate > ?" ; "" ; "" ; date ( 2 ; 1 ; 1950 ))

En passant par les paramètres, ça fonctionne.

Link to comment
Share on other sites

Merci Fabrice pour tes observations,

 

Si maintenant, il faut cesser de rouler les r, de quoi aurons nous l'air...

Bon, ça fonctionne très bien en français avec ExecuteSQL. Il n'y avait pas de quoi franciser cette fonction !

 

Pour les dates, je sais que la conversion de dates est une de tes spécialités, il va falloir identifier le contenu des rubriques "Valeur" ( texte, nombre, date selon différents formats) afin de retourner un résultat exploitable par FMP. 

 

Du pain sur la planche.

Link to comment
Share on other sites

ExecuteSQL a remplacé ExecuterSQL, ce qui permet à la version anglaise de fonctionner, donc pour toutes les versions localisées de FMP par la même occasion.

 

La gestion des dates a été intégrée dans les valeurs de la clause WHERE avec le choix du format date ISO AAAA-MM-JJ par défaut ou date FMP JJ/MM/AAAA.

En saisie, toutes les formats de dates sont possibles, hormis le format américain MM/JJ/AAAA, cause de confusion. Sont acceptés les formats basés sur le format ISO ou FMP avec les séparateurs "/", "-", "." ou " " et les mois peuvent être écrits en lettre (anglais ou français, complet ou abrégé). Ainsi la majorité des écritures de dates peuvent être reconnues, y compris les dates suisses ou canadiennes (cf Wikipedia).

Link to comment
Share on other sites

Petite précision pour Fabrice,

 

 

 

Par exemple, si tu ajoutes un champ date à ta table Departement, tu ne peux pas requêter en comparant ta date dans un WHERE parce qu'ils se sont emmêlé les pinceaux chez FMI.

 

En fait, ce n'est pas FMI qui s'est emmêlé les pinceaux, c'est qu'il existe plusieurs formats de date en cours.

Pour les gros systèmes de type SQL la date s'écrit AAAA-MM-JJ version raccourcie de la norme ISO. Ce qui donne 2014-10-04 pour aujourd'hui, valeur indépendante de la machine sur laquelle cette date est saisie et qui peut très bien être interprétée dans une rubrique texte.

Pour FileMaker la date est un chiffre qui correspond au nombre de jour depuis le 1/1/0001. Et ce chiffre est converti en une date lisible et saisissable par nous.

Faire cohabiter ces deux systèmes n'est pas simple.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...