- Ordinateurs et électronique
- Logiciel
- Services informatiques
- Logiciel de base de données
- Filemaker
- Pro 10
- Mode d'emploi
▼
Scroll to page 2
of
58
FileMaker 10 ® Guide ODBC et JDBC © 2004-2009 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054, Etats-Unis FileMaker, le logo en forme de dossier, Bento et le logo Bento sont des marques commerciales ou des marques déposées de FileMaker, Inc. aux Etats-Unis et dans d’autres pays. Mac et le logo Mac sont la propriété d’Apple Inc., et sont enregistrés aux Etats-Unis et dans d’autres pays. Toutes les autres marques sont la propriété de leurs détenteurs respectifs. La documentation de FileMaker est protégée par la législation sur les droits d’auteur. Vous nfêtes pas autorisé à créer des copies supplémentaires ni à distribuer cette documentation sans lfaccord écrit de FileMaker. Vous devez posséder une copie sous licence valide de FileMaker pour utiliser cette documentation. Toutes les personnes, sociétés, adresses e-mail et URL citées dans les exemples sont fictives et toute ressemblance avec des personnes, des sociétés, des adresses e-mail et des URL existantes ne serait que pure coïncidence. La liste des auteurs est disponible dans les documents Remerciements fournis avec ce logiciel. Les produits et URL tiers sont mentionnés à titre indicatif uniquement, et non pas à titre de recommandation. FileMaker, Inc. se dégage de toute responsabilité concernant les performances de ces produits. Pour plus de détails, consultez notre site Web à l’adresse www.filemaker.fr. Edition : 01 Table des matières Chapitre 1 Introduction A propos de ce guide Utilisation d’une base de données FileMaker en tant que source de données Accès à une base de données FileMaker Pro hébergée Limites avec des outils tiers Configuration requise pour une utilisation en réseau Mise à jour de fichiers à partir de versions antérieures Installation des pilotes actuels 7 7 8 8 9 9 9 Chapitre 2 Installation des pilotes clients ODBC et JDBC pour FileMaker Respect du contrat de licence Configurations matérielles et logicielles requises Configuration requise pour le pilote client ODBC (Windows) Configuration requise pour le pilote client ODBC (Mac OS) Configuration requise pour le pilote client JDBC Configuration requise pour une utilisation en réseau Installation du pilote client ODBC (Windows) Installation du pilote client ODBC (Mac OS) Installation du pilote client JDBC (Windows et Mac OS) Configuration des pilotes clients Etape suivante 11 11 11 11 12 12 12 13 13 14 14 Chapitre 3 Utilisation d’ODBC pour partager des données FileMaker A propos d’ODBC Utilisation du pilote client ODBC Présentation de l’accès à un fichier de base de données FileMaker Accès à un fichier de base de données FileMaker depuis une application Windows Spécification des propriétés de pilote client ODBC pour une source de données FileMaker (Windows) Vérification de l’accès via ODBC (Windows) Accès à un fichier de base de données FileMaker depuis une application Mac OS Configuration du pilote client ODBC (Mac OS) Spécification des propriétés du pilote client ODBC pour une source de données FileMaker (Mac OS) 15 16 17 17 17 19 20 20 20 Chapitre 4 Utilisation de JBC pour partager des données FileMaker A propos de JDBC 21 4 Guide ODBC et JDBC FileMaker Utilisation du pilote client JDBC A propos du pilote client JDBC Utilisation d’une URL JDBC pour la connexion à une base de données Spécification des propriétés du pilote dans le sous-nom de l’URL Vérification de l’accès via JDBC 21 21 22 23 25 Chapitre 5 Standards pris en charge Prise en charge des caractères Unicode instructions SQL SELECT, instruction clauses SQL Clause FROM Clause WHERE Clause GROUP BY Clause HAVING Opérateur UNION Clause ORDER BY Clause FOR UPDATE DELETE INSERT UPDATE CREATE TABLE ALTER TABLE CREATE INDEX DROP INDEX, instruction Fonctions statistiques SQL Expressions SQL Noms de rubriques Constantes et littéraux Notification en virgule flottante/scientifique Opérateurs numériques Opérateurs de caractères Opérateurs de dates opérateurs relationnels ; Opérateurs logiques Fonctions Ordre de priorité des opérateurs Fonctions de catalogue ODBC Fonctions de métadonnées JDBC Mots-clés SQL réservés 27 27 27 28 29 29 29 30 30 30 31 33 33 34 35 35 35 36 36 37 37 37 38 38 38 39 39 40 41 42 43 43 44 | Table des matières 5 Chapitre 6 Correspondances entre les rubriques FileMaker et les types de données ODBC Chapitre 7 Correspondances entre les rubriques FileMaker et les types de données JDBC Chapitre 8 Messages d’erreur ODBC et JDBC Messages d’erreur ODBC Messages d’erreur du pilote ODBC Messages d’erreur du gestionnaire de pilotes ODBC Messages d’erreur du client SequeLink Messages d’erreur du serveur SequeLink Messages d’erreur de la source de données Messages d’erreur JDBC Messages d’erreur du pilote JDBC Messages d’erreur du serveur SequeLink Messages d’erreur de la source de données 51 51 51 51 52 52 52 52 52 53 Index 55 6 Guide ODBC et JDBC FileMaker Chapitre 1 Introduction Ce guide décrit des concepts et contient des informations qui vous aideront à partager des données FileMaker® avec d’autres applications à l’aide d’ODBC (Open Database Connectivity) et de JDBC (Java Database Connectivity). Il explique également comment les pilotes clients ODBC et JDBC utilisés avec FileMaker Pro et FileMaker Server Advanced prennent en charge les standards de l’industrie pour ODBC, JDBC et SQL (Structured Query Language). Vous pouvez utiliser FileMaker Pro, FileMaker Pro Advanced ou FileMaker Server Advanced pour créer et tester votre solution. Vous pouvez ensuite partager votre solution de base de données FileMaker en tant que source de données avec des applications compatibles ODBC et JDBC. Vous devez installer les pilotes ODBC et JDBC de FileMaker sur la machine sur laquelle votre application tierce est installée. Important Ce guide décrit l’utilisation du logiciel FileMaker en tant que source de données. Pour des informations étape par étape sur l’utilisation de FileMaker Pro en tant qu’application cliente, consultez l’Aide de FileMaker Pro. Le tableau suivant fournit un aperçu de l’utilisation d’ODBC et de JDBC avec le logiciel FileMaker. Que voulez-vous faire ? Comment le faire ? Utiliser FileMaker Pro en tant que source de données/partager des données FileMaker Pro 1. Requêtes SQL 2. ODBC et JDBC Consultez le document Ce guide Utiliser FileMaker Pro en tant que client ODBC/ 1. De façon interactive via le graphe de liens Aide FileMaker Pro accéder aux données ODBC 2. Unique, statique via importation ODBC ou menu Fichier > Ouvrir. Également, l’action de script Importer enregistrements et l’action de script Exécuter SQL. A propos de ce guide 1 Pour plus d’informations sur l’utilisation d’ODBC et de JDBC avec les versions antérieures de FileMaker Pro, consultez le site www.filemaker.fr/documentation. 1 Ce guide part de l’hypothèse que vous êtes familiarisé avec les principes d’utilisation de base d’ODBC et de JDBC et de construction de requêtes SQL. Pour plus d’informations, consultez un livre spécialisé. 1 Ce guide parle indifféremment de « FileMaker Pro » pour faire référence à FileMaker Pro et à FileMaker Pro Advanced, sauf quand il décrit des fonctions propres à FileMaker Pro Advanced. Remarque Vous pouvez télécharger la version PDF de la documentation de FileMaker à l’adresse suivante : www.filemaker.fr/documentation. Toutes les mises à jour de ce document sont également disponibles sur le site Web. Utilisation d’une base de données FileMaker en tant que source de données ODBC et JDBC sont des interfaces de programmation d’applications (API). Ces API offrent aux applications clientes un langage commun pour communiquer avec une multitude de sources de données et de services de base de données, notamment FileMaker Pro et FileMaker Server Advanced. 8 Guide ODBC et JDBC FileMaker Toutes les applications qui prennent en charge ODBC et JDBC reconnaissent un sous-ensemble fondamental d’instructions SQL. Avec SQL, vous pouvez utiliser d’autres applications (telles que des tableurs, des traitements de texte et des outils de génération de rapports) pour voir, analyser et modifier des données FileMaker. Les instructions SQL transitent par les interfaces ODBC et JDBC jusqu’à l’hôte FileMaker de la source de données ; elles exécutent des requêtes du type SELECT first_name, last_name FROM customers WHERE city=‘Paris’ et effectuent des mises à jour telles que la création d’un nouvel enregistrement sous la forme INSERT INTO customers (first_name, last_name) VALUES (‘Jeanne’,‘Martin’). Accès à une base de données FileMaker Pro hébergée Avec FileMaker Server Advanced ou FileMaker Pro, vous pouvez héberger un fichier de base de données FileMaker en tant que source de données et partager vos données avec d’autres applications à l’aide d’ODBC et de JDBC. Le tableau suivant décrit les possibilités offertes par chaque produit FileMaker. Ce produit FileMaker Permet FileMaker Server Advanced Jusqu’à 50 connexions et prend en charge l’accès local (même ordinateur) et l’accès distant (pour les systèmes intermédiaires tels que les serveurs Web et pour l’accès aux clients distants à partir d’applications de bureautique). FileMaker Pro Jusqu’à neuf connexions et ne prend en charge que l’accès local (même ordinateur). Les modules ODBC et JDBC dont vous avez besoin pour partager vos données avec d’autres applications sont installés avec FileMaker Server Advanced et FileMaker Pro. Pour accéder à un fichier de base de données FileMaker hébergé, vous devez installer le pilote client ODBC ou JDBC correspondant. Installez le pilote client sur la machine sur laquelle est installée l’application tierce. Pour plus d’informations sur l’installation des fichiers du pilote requis pour accéder à une source de données FileMaker, reportez-vous au chapitre 2, « Installation des pilotes clients ODBC et JDBC pour FileMaker ». Si votre solution de base de données FileMaker utilise plusieurs fichiers de base de données FileMaker, tous ces fichiers devront être enregistrés sur le même ordinateur. Le Chapitre 5, « Standards pris en charge » décrit les instructions SQL que les pilotes clients ODBC et JDBC prennent en charge quand ils sont utilisés avec FileMaker Pro et FileMaker Server Advanced. Important Si vous désactivez le partage ODBC/JDBC après l’avoir activé, une source de données hébergée par FileMaker ServerAdvanced ou FileMaker Pro cesse immédiatement d’être disponible. L’administrateur de base de données n’a pas la possibilité d’avertir les applications clientes ODBC et JDBC quant à la disponibilité de la source de données (il ne peut communiquer qu’avec des clients de fichiers de base de données FileMaker). Aucune erreur n’est signalée et l’application cliente doit avertir les utilisateurs que la source de données n’est plus disponible et que les transactions ne peuvent pas être effectuées. Si une application cliente tente de se connecter à un fichier de base de données FileMaker qui n’est pas disponible, un message explique que la connexion a échoué. Limites avec des outils tiers 1 Assistant de requêtes Microsoft : vous ne pouvez pas accéder à une source de données FileMaker dont les noms de tables ou de colonnes contiennent des caractères au format ASCII accentués ou à deux octets. Utilisez plutôt Microsoft Query et saisissez manuellement les caractères situés entre guillemets doubles. 1 Microsoft Access : vous ne pouvez pas accéder à une source de données FileMaker dont les noms de tables ou de colonnes contiennent des caractères au format ASCII accentués ou à deux octets. Chapitre 1 | Introduction 9 Configuration requise pour une utilisation en réseau Vous devez disposer d’un réseau TCP/IP pour utiliser FileMaker Server Advanced pour héberger un fichier de base de données FileMaker en tant que source de données par l’intermédiaire d’un réseau. FileMaker Pro ne prend en charge que l’accès local (même ordinateur). Mise à jour de fichiers à partir de versions antérieures Installation des pilotes actuels Si vous avez installé un pilote d’une version antérieure à FileMaker Server 9 Advanced ou FileMaker Pro 9, vous devez désinstaller ce pilote et installer celui de la version 10. Pour plus d’informations, reportez-vous au chapitre 2, « Installation des pilotes clients ODBC et JDBC pour FileMaker ». Remarque Vous devez créer une source de données pour chaque fichier de base de données FileMaker auquel vous souhaitez accéder en tant que source de données. Si vous avez déjà configuré un accès via une source de données qui admet que les tables soient situées dans différents fichiers de base de données FileMaker, vous devez consolider ces tables sous la forme d’un fichier de base de données unique (ou créer plusieurs sources de données). 10 Guide ODBC et JDBC FileMaker Chapitre 2 Installation des pilotes clients ODBC et JDBC pour FileMaker Ces instructions vous aident à installer les pilotes nécessaires pour accéder à une source de données FileMaker tierce et à des applications personnalisées via ODBC (Open Database Connectivity) et JDBC (Java Database Connectivity). Les pilotes clients sont disponibles sur votre CD FileMaker pour une installation distincte ou peuvent être téléchargés par voie électronique dans le dossier \xDBC. Les dernières versions des pilotes clients sont également disponibles sur le site : www.filemaker.fr/support/technologies. Si vous devez héberger un fichier de base de données FileMaker à l’aide de FileMaker Server Advanced, mettez les pilotes clients à la disposition des utilisateurs distants. Après avoir installé le pilote client requis, vous pouvez configurer le pilote pour accéder à une source de données FileMaker et construire des requêtes SQL (Structured Query Language) pour interagir avec les données. Respect du contrat de licence Les pilotes clients ODBC et JDBC sont la partie du logiciel FileMaker qui permet à des applications tierces ou personnalisées d’accéder aux fichiers FileMaker en tant que source de données ODBC ou JDBC. Configurations matérielles et logicielles requises Pour installer et utiliser les pilotes clients ODBC et JDBC, vous devez être équipé au minimum du matériel et des logiciels suivants : Configuration requise pour le pilote client ODBC (Windows) 1 1 1 1 Pentium 300 MHz ou supérieur ; quantité totale de RAM de 64 Mo pour Windows 2000 et de 128 Mo pour Windows XP ; Microsoft Data Access Components (MDAC) 2.8 SP1 Windows MDAC 6.0 pour Vista Configuration requise pour le pilote client ODBC (Mac OS) 1 Apple G3 ou plus rapide (pas de carte de mise à jour G3) 1 128 Mo de RAM 1 Mac OS X 10.3.9 ou 10.4 (le logiciel peut fonctionner avec des versions plus récentes certifiées par FileMaker) 12 Guide ODBC et JDBC FileMaker Configuration requise pour le pilote client JDBC Applications utilisant Nécessitent API JDBC 1.22 JVM (Java Virtual Machine) compatible avec le JDK 1.2 API JDBC 2.0 centrale JVM compatible avec le JDK 1.3 Package optionnel JDBC 2.0 JVM compatible avec le JDK 1.3 Vous devez également disposer des API suivantes, qui sont fournies avec le client SequeLink Java : 1 Package optionnel JDBC 2.0 1 JNDI 1.2 1 JTA 1.0.1 API JCA JDK 1.3 API JDBC 3.0 JDK 1.4 ou 1.5 Pour savoir quelle version de Java vous exécutez, ouvrez une fenêtre de commande (Windows) ou une fenêtre Terminal (Mac OS) et tapez java -version. Configuration requise pour une utilisation en réseau Si vous devez accéder à une source de données FileMaker hébergée sur un autre ordinateur, vous devez disposer d’un accès réseau via TCP/IP. Installation du pilote client ODBC (Windows) Si vous avez déjà installé le pilote client ODBC sous Windows, désinstallez-le via Ajout/Suppression de programmes avant d’installer une version mise à jour. Pour installer le pilote client ODBC Vous devez disposer de MDAC 2.8 SP1 (disponible sur www.microsoft.com) pour installer le pilote client ODBC. 1. Dans le dossier \xDBC\ODBC Client Driver Installer, double-cliquez sur setup. La fenêtre DataDirect SequeLink for ODBC 5.5 - InstallShield Wizard apparaît. 2. Installez le pilote client ODBC en suivant les instructions affichées à l’écran. Les éléments Data Source SyncTool, Data Source SyncTool Administrator et SequeLink Online Books ne sont pas inclus dans l’installation par défaut. Vous n’en avez pas besoin pour utiliser le pilote client ODBC. Par défaut, le pilote client ODBC est installé dans le dossier suivant : C:\Program Files\DataDirect\slodbc55. Vous pouvez sélectionner un autre lecteur ou un autre dossier si vous le souhaitez. 3. Lorsque vous avez terminé l’installation, cliquez sur Terminer. Le pilote client ODBC, DataDirect 32-BIT SequeLink 5.5, est maintenant prêt et vous pouvez le configurer pour accéder à une source de données FileMaker. Remarque Si vous rencontrez des problèmes en l’installant directement, installez-le à l’aide de l’icône Ajout/Suppression de programmes de Windows (choisissez Démarrer > Panneau de configuration > Ajout/Suppression de programmes). Chapitre 2 | Installation des pilotes clients ODBC et JDBC pour FileMaker 13 Installation du pilote client ODBC (Mac OS) Si vous avez déjà installé le pilote client ODBC pour Mac OS, désinstallez-le avant d’installer une version mise à jour. Pour installer le pilote client ODBC Dans le dossier /xDBC/ODBC Client Driver Installer, copiez le fichier SequeLink.bundle dans votre bibliothèque système ou utilisateur. Si le dossier /ODBC n’existe pas sur votre machine, créez-le manuellement. Copiez le fichier Bibliothèq SequeLink.bundle ue dans ce dossier : Utilisez ce chemin d’accès au pilote pendant la configuration : Système /Bibliothèque/ODBC /Bibliothèque/ODBC/SequeLink.bundle/Contents/MacOS/ivslk20.dylib Utilisateur /Utilisateurs/<utilisateur>/ Bibliothèque/ODBC /Utilisateurs/<utilisateur>/Bibliothèque/ODBC/SequeLink.bundle/Contents/ MacOS/ivslk20.dylib Remarque Si vous avez ouvert une session à l’aide d’un compte disposant des droits d’administrateurs, aucune modification des autorisations n’est nécessaire après la création du dossier /ODBC. Le dossier ODBC doit disposer des autorisations suivantes : 1 Appartient au groupe admin, root 1 Autorisations de lecture, d’écriture et d’exécution pour root et admin 1 Autorisations de lecture et d’exécution pour tous les autres comptes Ce pilote client a été testé avec ODBC Administrator 1.0.2 (disponible avec Mac OS 10.4.11) et ODBC Administrator 1.1 (disponible avec Mac OS 10.5.4). Important Utilisez l’administrateur ODBC fourni avec le logiciel de gestion de pilotes ODBC recommandé pour votre application cliente. Installation du pilote client JDBC (Windows et Mac OS) Le programme d’installation et le pilote client JDBC fonctionnent sur Windows et Mac OS. Vous devez disposer d’un accès en écriture sur le dossier d’installation du pilote client JDBC. Par défaut, le dossier contenant le programme d’installation est le dossier d’installation. Si vous avez déjà installé le pilote client JDBC pour Windows, désinstallez-le avant d’installer une version mise à jour. Pour installer le pilote client JDBC 1. Ouvrez le dossier \xDBC\JDBC Client Driver Installer, puis double-cliquez sur sljcinstaller.jar. La fenêtre DataDirect SequeLink for JDBC 5.5 Installer apparaît. Remarque Votre environnement Java Runtime doit être associé aux fichiers d’archive .JAR. D’autres applications peuvent également être associées aux fichiers d’archive .JAR, telles que WinZip ou Stuffit. Dans ce cas, elles peuvent empêcher l’ouverture du programme d’installation JDBC. Si la fenêtre du programme d’installation ne s’ouvre pas, ouvrez une fenêtre de commande (Windows) ou une Terminal (Mac OS) et utilisez à la place le dossier JDBC Client Driver. De là, vous pouvez démarrer le programme d’installation en saisissant la commande suivante : java -jar sljcinstaller.jar. 14 Guide ODBC et JDBC FileMaker 2. Cliquez sur Suivant. Lisez le contrat de licence. 3. Si vous jugez le contrat de licence acceptable, sélectionnez J’accepte les termes du contrat de licence, puis cliquez sur Suivant. Une fenêtre contenant les options d’installation apparaît. 4. Sélectionnez Install Developer’s Tools. Les outils incluent JDBCTest, qui vous aide à vérifier vos connexions JDBC. 5. Entrez un répertoire d’installation dans Install Directory. 1 Windows : entrez un chemin incluant votre fichier Java exécutable (java.exe). 1 Mac OS : entrez /Bibliothèque/Java/Extensions (ou un autre emplacement inclus dans la variable ClassPath de votre application Java). 6. Cliquez sur Suivant. 7. Confirmez vos choix d’installation, puis cliquez sur Installer. 8. Lorsque vous avez terminé l’installation, cliquez sur Terminer. Le pilote client JDBC est désormais disponible pour configurer l’accès à une source de données FileMaker. Configuration des pilotes clients Avant d’utiliser une application cliente pour accéder à une source de données FileMaker, vous devez configurer un pilote client pour la source de données. Les paramètres de configuration identifient le pilote client que vous utilisez, l’emplacement de la source de données et la manière dont vous souhaitez vous connecter. Important Quand vous configurez un pilote client, vous devez spécifier 2399 pour le port. Pour ODBC (Windows), vous devez spécifier ce port dans l’Administrateur de source de données ODBC. Pour ODBC (Mac OS), vous devez spécifier ce port dans l’Administrateur ODBC. Pour JDBC, vous devez indiquer le port dans l’URL JDBC. Pour plus d’informations (en langue anglaise) sur le pilote client ODBC pour Windows, choisissez le menu Démarrer de Windows Programmes > DataDirect SequeLink for ODBC 5.5 > Driver Help. Remarque Certaines des fonctionnalités décrites par le système d’aide, qui est fourni par DataDirect Technologies, dépassent le cadre de l’utilisation des pilotes clients ODBC et JDBC pour accéder à des sources de données FileMaker. Etape suivante Après avoir installé et configuré un pilote client, vous pouvez construire et exécuter des requêtes SQL pour accéder à une source de données FileMaker. Les applications clientes emploient parfois une terminologie différente pour l’accès à une source de données via ODBC. De nombreuses applications contiennent des éléments de menu portant des noms tels que Obtenir des données externes ou Requête SQL. Pour plus de détails, consultez la documentation ou l’aide fournies avec votre application. Chapitre 3 Utilisation d’ODBC pour partager des données FileMaker Utilisez le pilote client ODBC pour vous connecter à une source de données FileMaker à partir d’une autre application. L’application qui utilise le pilote client ODBC peut accéder directement aux données d’un fichier de base de données FileMaker. 1 Windows : le pilote client FileMaker ODBC s’appelle DataDirect 32-BIT SequeLink 5.5. 1 Mac OS : le pilote client FileMaker ODBC s’appelle ivslk20.dylib. Remarque Vous pouvez également utiliser FileMaker Pro en tant qu’application cliente et la faire interagir avec les enregistrements d’une autre source de données via ODBC à l’aide de SQL. Pour plus d’informations sur l’accès à une source de données externe via ODBC, consultez l’Aide de FileMaker Pro. A propos d’ODBC ODBC est une API qui permet aux applications d’accéder à des données provenant de divers systèmes de gestion de bases de données. ODBC offre aux applications clientes un langage commun permettant d’interagir avec des sources de données et des services de base de données. Toutes les applications qui prennent en charge ODBC reconnaissent un sous-ensemble commun d’instructions. SQL permet d’utiliser d’autres applications (telles que des tableurs, des traitements de texte et des outils de génération de rapports) pour voir, analyser et modifier des données FileMaker. Pour connaître les instructions, fonctions et expressions SQL prises en charge par le pilote client ODBC, consultez la rubrique chapitre 5, « Standards pris en charge ». Votre application peut communiquer directement avec un fichier de base de données FileMaker en utilisant le pilote client ODBC. Les instructions SQL sont transmises à l’hôte FileMaker du fichier de base de données et les réponses vous sont ensuite communiquées. Si vous utilisez FileMaker Server Advanced pour héberger un fichier de base de données en tant que source de données, le fichier de base de données peut être situé sur une autre machine (la machine serveur) connectée au réseau, votre application cliente étant placée sur votre machine (la machine cliente). Il s’agit d’une configuration client/serveur. 16 Guide ODBC et JDBC FileMaker Application cliente Gestionnaire de pilotes Oracle Pilote ODBC Pilote ODBC SQL Server Pilote client ODBC Oracle Microsoft SQL Server FileMaker Utilisation du pilote client ODBC Vous pouvez utiliser le pilote client ODBC avec n’importe quelle application compatible ODBC. En partageant votre fichier de base de données FileMaker en tant que source de données, vous pouvez : 1 1 1 1 effectuer des fusions-publipostages avec Microsoft Word ; créer des graphiques avec Microsoft Excel ; déplacer des données FileMaker vers un SGBD tel que Microsoft SQL Server ; analyser vos données FileMaker à l’aide d’outils de requête ou de génération de rapports pour créer des graphiques, définir des requêtes personnalisées et effectuer des analyses avec recherche d’antécédents ; 1 créer une application Microsoft Visual Basic partageant des informations avec FileMaker Pro. Pour partager un fichier de base de données FileMaker en tant que source de données, utilisez FileMaker Pro pour définir les comptes qui auront besoin d’accéder au fichier de base de données. Ensuite, contrôlez l’accès au fichier de base de données en affectant des jeux de privilèges aux comptes, notamment le privilège étendu Accès via ODBC/JDBC. Enfin, activez le partage de données via ODBC/JDBC sur l’application hôte FileMaker Server Advanced ou FileMaker Pro. Pour plus d’informations, consultez l’aide de FileMaker Pro ou de FileMaker Server. Important Le pilote client ODBC remplace le pilote ODBC FileMaker Pro fourni avec une version antérieure de FileMaker. Si vous avez déjà configuré l’accès à une source de données FileMaker à l’aide de l’ancien pilote, vous devez redéfinir l’accès en utilisant et configurant le nouveau pilote. Remarque Vous pouvez utiliser le Moniteur d’activité sous Mac OS ou le Gestionnaire des tâches sous Windows pour vérifier l’état du processus ddfmsoc afin de confirmer que le serveur SequeLink est en cours d’exécution. Une fois le processus lancé, il prend le nom FMSocket_SL55 et les événements sont consignés sous ce nom. Le processus du serveur SequeLink est distinct du processus FileMaker Server. Chapitre 3 | Utilisation d’ODBC pour partager des données FileMaker 17 Présentation de l’accès à un fichier de base de données FileMaker A partir d’une application compatible ODBC, vous pouvez construire des requêtes SQL pour accéder à un fichier de base de données FileMaker. Le pilote client ODBC doit être installé sur l’ordinateur qui génère la requête SQL. Pour accéder à un fichier de base de données FileMaker : 1. Dans FileMaker Pro, vérifiez les jeux de privilèges que vous avez affectés aux comptes qui accéderont au fichier de base de données. Les comptes qui ont besoin d’un accès doivent employer un jeu de privilèges incluant le privilège étendu Accès via ODBC/JDBC. 2. Activez le partage de données via ODBC/JDBC sur l’application hôte FileMakerServer Advanced (via la console Admin de FileMaker Server) ou FileMakerPro. Console Admin de FileMaker Server : cliquez sur ODBC/JDBC , puis sélectionnez Activer ODBC/JDBC. FileMaker Pro : choisissez le menu Fichier > Partage > ODBC/JDBC et paramétrez l’option Partage ODBC/JDBC sur Activé. 3. Assurez-vous que le fichier de base de données FileMaker auquel vous voulez accéder est hébergé et disponible. Si votre solution de base de données FileMaker utilise plusieurs fichiers de base de données FileMaker, tous ces fichiers devront être enregistrés sur le même ordinateur. 4. Connectez-vous à la source de données FileMaker. 5. Créez et exécutez une requête SQL dans l’application cliente. Chaque fichier de base de données FileMaker ouvert et configuré pour l’accès constitue une source de données distincte (vous devez créer une source de données pour chaque fichier de données FileMaker auquel vous souhaitez accéder en tant que source de données). Chaque base de données peut contenir une ou plusieurs tables. Les rubriques FileMaker sont représentées sous forme de colonnes. Le nom complet de la rubrique, avec les caractères non alphanumériques qu’il contient éventuellement, s’affiche en tant que nom de colonne. Remarque Sous Windows, Microsoft Access ne peut pas importer plus de 32 rubriques à la fois d’un fichier de base de données FileMaker via ODBC. Si votre fichier de base de données contient plus de 32 rubriques, importez-les par incréments de 32. Accès à un fichier de base de données FileMaker depuis une application Windows Spécification des propriétés de pilote client ODBC pour une source de données FileMaker (Windows) Créez une source de données pour chaque fichier de base de données FileMaker auquel vous souhaitez accéder en tant que source de données. La source de données identifie le pilote client ODBC FileMaker, l’emplacement de l’application hôte FileMaker et le fichier de base de données FileMaker auquel vous accédez en tant que source de données. 18 Guide ODBC et JDBC FileMaker Pour configurer ou modifier les propriétés du pilote ODBC : 1. Ouvrez l’Administrateur de sources de données ODBC depuis le Panneau de configuration. Dans le Panneau de configuration de Windows, choisissez Outils d’administration > Sources de données (ODBC). Sous Windows XP, l’option Outils d’administration apparaît dans la catégorie Performances et maintenance. Sous Windows Vista, l’option Outils d’administration apparaît dans la catégorie Système et maintenance. 2. Cliquez sur l’onglet System DSN (Sources de données système). Si vous avez configuré votre source de données en tant que source de données utilisateur ou fichier, cliquez sur l’onglet correspondant. 3. Cliquez sur Add (Ajouter). Remarque Si vous modifiez les propriétés d’une source de données existante, sélectionnez cette source, cliquez sur Configure (Configurer) et passez à l’étape 6. 4. Sélectionnez DataDirect 32-BIT SequeLink 5.5 dans la liste de pilotes. Si le pilote ne figure pas dans la liste Administrateur de sources de données ODBC, recherchez l’entrée (par défaut) de la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers à l’aide de Regedit (choisissez Démarrer > Exécuter > Regedit). La colonne Données de cette entrée doit contenir (valeur non définie). Si, au lieu de cela, vous voyez une chaîne vide, cliquez avec le bouton droit de la souris sur (par défaut), choisissez Supprimer, puis cliquez sur Oui pour confirmer. Cette opération réinitialise l’entrée sur (valeur non définie). Désinstallez votre pilote client ODBC et réinstallez-le pour le voir dans l’Admnistrateur de sources de données ODBC. 5. Cliquez sur Terminer. Cette opération affiche la boîte de dialogue DataDirect SequeLink for ODBC Setup (Configuration de DataDirect SequeLink pour ODBC) avec l’onglet General (Général) sélectionné. 6. Dans la zone Data Source Name (Nom de source de données), entrez un nom aisément identifiable par les autres utilisateurs accédant à la source de données FileMaker Pro. Vous pouvez décrire cette source de données dans la zone facultative Description (Description). Assurez-vous que l’option Use LDAP (Utiliser LDAp) est désélectionnée. Le pilote client ODBC n’inclut pas de .DLL de conversion. Par conséquent, même si vous cliquez sur Translate (Convertir), vous ne pourrez pas configurer de convertisseur ODBC). 7. Pour SequeLink Server Host (Hôte serveur SequeLink), entrez l’emplacement de votre source de données. Si vous vous connectez à un fichier de base de données FileMaker hébergé par FileMaker Pro sur votre machine locale, tapez localhost (ou 127.0.0.1). Si vous vous connectez à un fichier de base de données FileMaker hébergé par FileMaker Server Advanced par l’intermédiaire d’un réseau, tapez l’adresse IP du serveur FileMaker. 8. Dans la zone SequeLink Server Port (Port serveur SequeLink), tapez 2399. Important Quand vous configurez un pilote client, vous devez spécifier 2399 pour le port serveur SequeLink. 9. Dans la zone Server Data Source (Source de données serveur), entrez le nom du fichier de base de données FileMaker que vous utilisez comme source de données (n’indiquez pas l’extension du nom du fichier). Chapitre 3 | Utilisation d’ODBC pour partager des données FileMaker 19 10. Si vous avez activé le partage via ODBC/JDBC dans l’application hôte, cliquez sur le bouton situé à droite de la zone Source de données serveur pour afficher les noms des fichiers de base de données FileMaker actuellement ouverts, parmi lesquels vous pouvez choisir. Si le nom de votre base de données contient des espaces, remplacez-les par le caractère %20. Par exemple, MY%20DATABASE. 11. Cliquez sur OK pour enregistrer vos informations de source de données. Si vous partagez un autre fichier de base de données FileMaker, revenez à l’étape 3 et configurez ce fichier en tant que source de données. 12. Cliquez sur OK pour refermer la boîte de dialogue ODBC Database Administrator (Administrateur de sources de données ODBC). Vérification de l’accès via ODBC (Windows) Pour vérifier que vous avez configuré correctement le pilote client ODBC pour accéder à la source de données FileMaker : 1. Ouvrez la fenêtre ODBC Database Administrator (Administrateur de sources de données ODBC) à partir du Panneau de configuration. Dans le Panneau de configuration de Windows, choisissez Outils d’administration > Sources de données (ODBC). Sous Windows XP, l’option Outils d’administration apparaît dans la catégorie Performances et maintenance. 2. Cliquez sur l’onglet System DSN (Sources de données système). Si vous avez configuré votre source de données en tant que source de données utilisateur ou fichier, cliquez sur l’onglet correspondant. 3. Sélectionnez la source de données FileMaker que vous avez configurée précédemment. Le nom que vous aviez entré pour la source de donnée apparaît sous Name (Nom) et DataDirect 32-BIT SequeLink 5.5 apparaît sous Driver (Pilote). 4. Cliquez sur Configurer. La boîte de dialogue DataDirect SequeLink for ODBC Setup (Configuration de DataDirect SequeLink pour ODBC) apparaît. 5. Cliquez sur Test Connect (Tester la connexion). Le système vous demande d’entrer un nom de compte FileMaker (dans Database User Name (Nom d’utilisateur de base de données)) et un mot de passe (dans Database Password (Mot de passe de base de données)). Si la connexion fonctionne correctement, le message Connection test was successful (Le test de connexion a réussi) s’affiche. Si la connexion échoue : 1 Assurez-vous que le fichier de base de données FileMaker est hébergé et disponible. 1 Mettez à jour ou corrigez vos informations de connexion. 1 Assurez-vous que votre compte FileMaker emploie un jeu de privilèges incluant le privilège étendu Accès via ODBC/JDBC. 1 Vérifiez que l’application hôte FileMaker Pro ou FileMaker Server a été configurée pour partager des fichiers via ODBC/JDBC. 20 Guide ODBC et JDBC FileMaker Accès à un fichier de base de données FileMaker depuis une application Mac OS Les applications personnalisées doivent être créées avec la version 3.52.1 des en-têtes et des bibliothèques ODBC. Les applications créées avec la version 3.51 risquent de ne pas parvenir à charger le pilote client. Configuration du pilote client ODBC (Mac OS) Configurez le pilote client à l’aide de l’administrateur ODBC fourni avec le logiciel de gestion de pilotes ODBC recommandé pour votre application cliente. Ce pilote client a été testé avec ODBC Administrator 1.0.2 (disponible avec Mac OS 10.4.11) et ODBC Administrator 1.1 (disponible avec Mac OS 10.5.4). Au moment de configurer le pilote client, il vous sera demandé de fournir une brève description, ainsi que le chemin d’accès au fichier du pilote : Si vous avez copié SequeLink.bundle dans cette bibliothèque : Utilisez ce chemin d’accès au pilote pendant la configuration : /Bibliothèque/ODBC /Bibliothèque/ODBC/SequeLink.bundle/Contents/MacOS/ivslk20.dylib /Utilisateurs/<utilisateur>/ Bibliothèque/ODBC /Utilisateurs/<utilisateur>/Bibliothèque/ODBC/SequeLink.bundle/Contents/MacOS/ ivslk20.dylib L’administrateur ODBC vous permet également de définir de façon facultative les mots-clés, ainsi que le chemin d’accès au fichier de configuration. Par contre, le pilote client n’a pas besoin de ces informations. Spécification des propriétés du pilote client ODBC pour une source de données FileMaker (Mac OS) Créez une source de données pour chaque fichier de base de données FileMaker auquel vous souhaitez accéder en tant que source de données. La source de données identifie le pilote client ODBC FileMaker, l’emplacement de l’application hôte FileMaker et le fichier de base de données FileMaker auquel vous accédez en tant que source de données. Important Le pilote client ODBC pour Mac OS ne prend pas en charge les caractères ASCII accentués, à deux octets ou japonais dans les noms des bases de données ou des tables. Si votre fichier de base de données FileMaker utilise ces caractères, créez une deuxième base de données et utilisez uniquement des caractères ASCII pour les noms du fichier et des tables. Dans cette deuxième base de données, créez une référence de source de données qui pointe vers les données de votre fichier de base de données d’origine. Partagez ces deux fichiers avec ODBC/JDBC, mais utilisez le deuxième fichier de base de données au moment de définir votre source de données. De même, vous devrez indiquer les valeurs des mots-clés relatives à la source de données : Mot-clé Valeur Hôte Si vous vous connectez à un fichier de base de données FileMaker hébergé par FileMaker Pro sur votre machine locale, tapez localhost (ou 127.0.0.1). Si vous vous connectez à un fichier de base de données FileMaker hébergé par FileMaker Server Advanced par l’intermédiaire d’un réseau, tapez l’adresse IP ou le nom d’hôte du serveur FileMaker. Port Tapez 2399. ServerDataSource Entrez le nom du fichier de base de données FileMaker que vous utilisez comme source de données (n’indiquez pas l’extension du nom du fichier). Si le nom de votre base de données contient des espaces, remplacez-les par le caractère %20. Par exemple, ServerDataDource=MA%20BASE. Les caractères à deux octets ne sont pas pris en charge. Chapitre 4 Utilisation de JBC pour partager des données FileMaker Si vous programmez en Java, vous pouvez employer le pilote client JDBC avec n’importe quel outil RAD (Rapid Application Development) pour créer visuellement une application ou une applet Java qui se connecte à une source de données FileMaker. L’application ou applet Java qui utilise le pilote client JDBC peut accéder directement aux données d’un fichier de base de données FileMaker. A propos de JDBC JDBC est une API (Application Programming Interface) Java qui permet d’exécuter des instructions SQL (Structured Query Language), langage standard d’accès aux bases de données relationnelles. JDBC est un nom et non un acronyme, bien qu’il soit possible de croire qu’il signifie « Java Database Connectivity » puisqu’il est l’équivalent d’ODBC pour Java. JDBC est une interface de bas niveau, ce qui signifie qu’il est utilisé pour appeler directement les commandes SQL. Il sert également de base pour des interfaces et outils de haut niveau. Votre applet ou application Java peut communiquer directement avec un fichier de base de données FileMaker en utilisant le pilote client JDBC. Les instructions SQL sont transmises à l’hôte FileMaker du fichier de base de données et les réponses vous sont ensuite communiquées. Si vous utilisez FileMaker Server pour l’hébergement, le fichier de base de données que vous employez en tant que source de données peut être situé sur une autre machine (la machine serveur) connectée au réseau, votre applet ou application cliente Java étant placée sur votre machine (la machine cliente). Il s’agit d’une configuration client/serveur. application Java Pilote JDBC Ordinateur client FileMaker Serveur de bases de données Utilisation du pilote client JDBC Vous pouvez utiliser le pilote client JDBC avec un compilateur Java ou un outil RAD pour vous connecter à la base de données pendant la création du code de l’application ou de l’applet Java. Une fois l’application ou l’applet Java créée, le pilote client JDBC doit accompagner les fichiers ou être inclus dans le code pour que l’application ou l’applet puisse communiquer avec la base de données. Pour utiliser le pilote client JDBC, votre application ou applet Java doit enregistrer le pilote dans le gestionnaire de pilotes JDBC et vous devez spécifier l’URL JDBC correcte à partir de l’application ou de l’applet. L’URL JDBC est nécessaire pour se connecter à la base de données. A propos du pilote client JDBC Le pilote client JDBC prend partiellement en charge la spécification JDBC 3.0. Les fonctions suivantes ne sont pas prises en charge par FileMaker : 1 Prise en charge de Savepoint 1 Extraction des clés générées automatiquement 1 Transmission des paramètres vers un objet d’instruction d’appel par nom 22 1 1 1 1 1 1 1 1 Guide ODBC et JDBC FileMaker Prise en charge du curseur persistant Exécution de mises à jour internes vers les données des objets Blob et Clob Extraction et mise à jour de l’objet référencé par un objet Ref Mise à jour des colonnes contenant des types de données BLOB, CLOB, ARRAY et REF Type de données booléen Type de données DATALINK Transformation des groupes et correspondance de types Relation entre le SPI JDBC et l’architecture Connector Pour plus d’informations, consultez le site www.filemaker.fr/support/technologies. Consultez également la rubrique (en anglais) SequeLink Developer’s Reference disponible sur le site www.datadirect.com pour plus d’informations sur la compatibilité de JDBC et le développement d’applications JDBC pour SequeLink. Le pilote client JDBC a été testé par rapport au JDK (Java Development Kit) 1.5 (Mac OS) et 1.6 (Windows). Il s’agit d’un pilote de type 4, c’est-à-dire d’un pilote de protocole natif purement Java qui convertit directement les appels JDBC dans le protocole de réseau utilisé par FileMaker. Ce type de pilote offre tous les avantages de Java, y compris l’installation automatique (par exemple, le téléchargement du pilote JDBC avec l’applet qui l’utilise). Il fonctionne avec le JDK 1.3 et avec Java 2 tant que vous n’utilisez que des appels JDBC 1.2 dans un environnement Java 2. La classe (et point d’accès principal) du pilote est nommée : com.ddtek.jdbc.sequelink.SequeLinkDriver Important Le pilote client JDBC remplace le pilote JDBC FileMaker fourni avec une version antérieure de FileMaker. Si vous avez déjà configuré l’accès à une source de données FileMaker à l’aide de l’ancien pilote, vous devez redéfinir l’accès en utilisant et configurant le nouveau pilote. Remarque Vous pouvez utiliser le Moniteur d’activité sous Mac OS ou le Gestionnaire des tâches sous Windows pour vérifier l’état du processus ddfmsoc afin de confirmer que le serveur SequeLink est en cours d’exécution. Une fois le processus lancé, il prend le nom FMSocket_SL55 et les événements sont consignés sous ce nom. Le processus du serveur SequeLink est distinct du processus FileMaker Server. Utilisation d’une URL JDBC pour la connexion à une base de données En langage Java, l’accès à la plupart des ressources s’effectue par le biais d’URL (Uniform Resource Locator). Une URL JDBC sert à identifier la base de données afin que le pilote client JDBC puisse la reconnaître et s’y connecter. L’URL JDBC est constituée de trois éléments principaux, séparés par le signe deux-points : jdbc:<sous-protocole>:<sous-nom> La première partie de l’URL JDBC est toujours le protocole JDBC (« jdbc »). Le sous-protocole est le nom du pilote ou le mécanisme prenant en charge plusieurs pilotes. Pour le pilote client JDBC, le sous-protocole est sequelink. Le sous-nom est l’adresse IP de la machine qui héberge la source de données FileMaker. Enregistrement du pilote client JDBC et connexion à une source de données FileMaker (exemple) Vous trouverez ci-dessous un extrait de code d’une application cliente JDBC qui : 1. enregistre le pilote client JDBC auprès du gestionnaire de pilotes JDBC ; 2. établit une connexion avec la source de données FileMaker (l’URL JDBC est jdbc:sequelink://17.184.17.170:2399) ; Chapitre 4 | Utilisation de JBC pour partager des données FileMaker 23 3. renvoie des codes d’erreur. import java.sql.* class FMPJDBCTest { public static void main(String[ ] args) { // enregistrement du pilote client JDBC try { Driver d = (Driver)Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver").newInstance(); } catch(Exception e) { System.out.println(e); } // établissement d’une connexion avec FileMaker Connection con; try { con = DriverManager.getConnction(“jdbc:sequelink://17.184.17.170:2399; user=some user;password=some password;serverDataSource=database”); } catch(Exception e) + ";serverdatasource=" + dbName{ System.out.println(e); } // générer les avertissements de connexion + ";serverDataSource=" + dbName SQLWarning warning = null; try { warning = con.getWarnings(); if (warning == null) { System.out.println("Aucun avertissement"); return; } while (warning != null) { System.out.println("Avertissement : +warning); warning = warning.getNextWarning(); } } catch (Exception e) { Sysem.out.println(e); } } }þ Remarque Cet exemple n’est pas destiné à être compilé. Spécification des propriétés du pilote dans le sous-nom de l’URL Indiquez les propriétés d’utilisateur et de mot de passe du pilote dans le sous-nom de l’URL JDBC. Il s’agit des mêmes propriétés que celles qui pouvaient être transférées à la connexion en invoquant la méthode DriverManager.getConnection à l’aide du paramètre Properties. 24 Guide ODBC et JDBC FileMaker 1 user : compte du fichier de base de données FileMaker qui emploie un jeu de privilèges avec le privilège étendu Accès via ODBC/JDBC 1 password : mot de passe du compte du fichier de base de données FileMaker Connexion simple à l’URL JDBC Format : jdbc:sequelink://<adresse IP de l’hôte sequelink>:<port> URL permettant de se connecter au fichier de base de données FileMaker sans mot de passe. Le numéro de port est toujours 2399 (vous ne pouvez pas faire passer le partage JDBC par un autre port). Si vous exécutez la connexion à l’URL JDBC sur la même machine que celle qui stocke le fichier, vous pouvez utiliser jdbc:sequelink://localhost:2399 Exemple : jdbc:sequelink://17.184.17.170:2399 Connexion à l’URL JDBC avec le nom d’utilisateur et le mot de passe définis dans l’URL Format : jdbc:sequelink://<adresse IP de l’hôte sequelink>:<port>;user=<nomUtilisateur>;password=<motDePasse> Exemple : jdbc:sequelink://17.184.17.170:2399;user=phil;password=jsp Connexion à l’URL JDBC avec le nom de la base de données spécifiée dans l’URL Format : jdbc:sequelink://<adresse IP de l’hôte sequelink>:<port> serverDataSource=<nomBaseDeDonnées> Exemple : jdbc:sequelink://17.184.17.170:2399;serverDataSource=MA%20BASE Si le nom de votre base de données contient des espaces, remplacez-les par le caractère %20. Exemple : jdbc:sequelink://17.184.17.170:2399;serverDataSource=MY%20DATABASE Connexion à l’URL JDBC avec le nom de la base de données, le nom d’utilisateur et le mot de passe spécifiés dans l’URL Format 1 (avec le nom d’utilisateur et le mot de passe de la base de données) : jdbc:sequelink:// <adresse IP de l’hôte sequelink>:<port>;serverDataSource=<nomBaseDeDonnées>; DBUser=<nomUtilisateurBaseDeDonnées>; DBPassword=<motDePasseBaseDeDonnées> Format 2 (avec le nom d’utilisateur et le mot de passe de l’hôte) : jdbc:sequelink://<adresse IP de l’hôte sequelink>:<port>;serverDataSource=<nomBaseDeDonnées>; HUser=<nomUtilisateur>;HPassword=<motDePasse> Si votre solution de base de données FileMaker utilise de nombreux fichiers de base de données FileMaker, créez pour votre solution un fichier de base de données supplémentaire contenant toutes les références nécessaires de sources de données externes, d’occurrences de tables et de liens. Définissez ensuite ce fichier de base de données supplémentaire en tant que source de données dans l’URL JDBC. Tous les fichiers de base de données FileMaker doivent être enregistrés sur le même ordinateur. Remarque Le cryptage Secure Socket Layer (SSL) n’est pas pris en charge. Pour créer une solution JDBC plus sure, mettez en place un environnement de type .ASP ou .JSP dans lequel le serveur Web effectue l’hébergement via https et communique avec le fichier de base de données FileMaker derrière un pare-feu. Chapitre 4 | Utilisation de JBC pour partager des données FileMaker 25 Vérification de l’accès via JDBC Lors de l’installation du pilote client JDBC, vous avez la possibilité d’installer JDBCTest pour vous aider à vérifier vos connexions. Au moment d’installer le pilote client JDBC, sélectionnez Install Developer’s Tools (Installer les outils du développeur) pour obtenir JDBCTest. Pour de plus amples informations, reportezvous à la rubrique « Installation du pilote client JDBC (Windows et Mac OS) », page 13. Pour vérifier l’accès à un fichier de base de données FileMaker via JDBC, assurez-vous que : 1 Le fichier de base de données FileMaker est hébergé et disponible. 1 Votre compte FileMaker emploie un jeu d’autorisations d’accès incluant l’autorisation étendue Accès via ODBC/JDBC. 1 L’application hôte FileMaker Pro ou FileMaker Server Advanced a été configurée pour partager des fichiers via ODBC/JDBC. Pour partager un fichier de base de données FileMaker en tant que source de données, utilisez FileMaker Pro pour définir les comptes qui auront besoin d’accéder au fichier de base de données. Ensuite, contrôlez l’accès au fichier de base de données en affectant des jeux de privilèges aux comptes, notamment le privilège étendu Accès via ODBC/JDBC. Enfin, activez le partage de données via ODBC/ JDBC sur l’application hôte FileMaker Server Advanced ou FileMaker Pro. Pour plus d’informations, reportez-vous à l’Aide de FileMaker Pro. 1 L’enregistrement du pilote client JDBC et l’URL JDBC sont corrects (le pilote peut être inclus dans l’application Java ou situé sur la machine cliente). Pour plus d’informations sur l’utilisation de JDBC pour partager les données FileMaker, consultez le site www.filemaker.fr/support/technologies. 26 Guide ODBC et JDBC FileMaker Chapitre 5 Standards pris en charge Ce chapitre décrit les instructions et constructions SQL prises en charge par les pilotes clients ODBC et JDBC de FileMaker. Ces pilotes clients sont destinés à accéder à une solution FileMaker à partir d’une application compatible ODBC ou JDBC. Cette solution peut être hébergée par FileMaker Pro ou FileMaker Server Advanced. Le pilote client ODBC prend en charge ODBC 3.5 niveau 1 avec quelques fonctions de niveau 2. Le pilote client JDBC prend partiellement en charge la spécification JDBC 3.0. Pour plus d’informations, consultez le site www.filemaker.fr/support/technologies et la rubrique (en anglais) SequeLink Developer’s Reference disponible sur le site www.datadirect.com. Les pilotes clients ODBC et JDBC sont compatibles avec le niveau d’entrée de SQL-92, ainsi qu’avec certaines fonctions SQL-92 de niveau intermédiaire. Prise en charge des caractères Unicode Les pilotes clients ODBC et JDBC prennent en charge l’API Unicode. Toutefois, si vous créez une application personnalisée qui emploie les pilotes clients, utilisez le format ASCII pour les noms de rubriques, de tables et de fichiers (si vous employez un outil de requête ou une application non Unicode). Remarque Pour insérer et récupérer des données Unicode, utilisez SQL_C_WCHAR (le type de données SQL_C_BINARY n’est pas pris en charge). instructions SQL Les pilotes clients ODBC et JDBC prennent en charge les instructions SQL suivantes : SELECT (voir ci-dessous) DELETE (page 33) INSERT (page 33) UPDATE (page 34) CREATE TABLE (page 35) ALTER TABLE (page 35) CREATE INDEX (page 35) DROP INDEX (page 36) Les pilotes clients prennent aussi en charge la conversion du type de données FileMaker en types de données ODBC SQL et JDBC SQL. Pour plus d’informations sur les conversions de types de données, consultez l’annexe 6, « Correspondances entre les rubriques FileMaker et les types de données ODBC » et l’annexe 7, « Correspondances entre les rubriques FileMaker et les types de données JDBC ». Pour plus d’informations sur la création de requêtes SQL, consultez un ouvrage spécialisé. Remarque Les pilotes clients ODBC et JDBC ne reconnaissent que la première valeur dans une rubrique multivaluée. Par ailleurs, ces pilotes ne prennent pas en charge les tables externes dans FileMaker Pro. SELECT, instruction L’instruction SELECT vous permet de spécifier les colonnes qui vous intéressent. Faites suivre l’instruction SELECT des expressions de colonne (comparables aux noms de rubriques) que vous voulez extraire (par exemple, nom_famille). Les expressions peuvent contenir des opérations mathématiques ou des instructions de manipulation de chaînes de texte (par exemple, SALAIRE * 1.05). 28 Guide ODBC et JDBC FileMaker L’instruction SELECT peut être accompagnée de diverses clauses&nbsp;: SELECT [DISTINCT] {* | expression_colonne [[AS] alias_colonne],...} FROM nom_table [alias_table], ... [ WHERE expr1 opérateur_rel expr2 ] [ GROUP BY {expression_colonne, ...} ] [ HAVING expr1 opérateur_rel expr2 ] [ UNION [ALL] (SELECT...) ] [ ORDER BY {expression_tri [DESC | ASC]}, ... ] [ FOR UPDATE [OF {expression_colonne, ...}] ] Les éléments entre crochets sont facultatifs. Remarque Il se peut que les instructions SELECT * dans des bases de données volumineuses et SELECT utilisant des alias de table ou des littéraux dans la liste de projection ne fonctionnent correctement. Pour éviter toutes éventuelles confusions, n’utilisez aucun caractère de remplacement et indiquez la table et les noms des colonnes sans leurs alias. alias_colonne peut servir à attribuer à la colonne un nom plus descriptif ou à abréger un nom de colonne long. Par exemple, pour attribuer l’alias service à la colonne serv : SELECT serv AS service FROM emp Vous pouvez faire précéder le nom des rubriques du nom ou de l’alias de la table. Par exemple, EMP.NOM_FAMILLE ou E.NOM_FAMILLE, où E est l’alias de la table EMP. Vous pouvez faire précéder la première expression de colonne de l’opérateur DISTINCT. Cet opérateur supprime les rangées dupliquées du résultat d’une requête. Par exemple : SELECT DISTINCT serv FROM emp clauses SQL Les pilotes clients ODBC et JDBC prennent en charge les clauses SQL suivantes. Utilisez cette clause SQL Pour FROM (voir ci-dessous) Indiquer les tables utilisées dans l’instruction SELECT. WHERE (page 29) Indiquer les conditions que doivent remplir les enregistrements à extraire (comme dans une recherche sous FileMaker Pro). GROUP BY (page 29) Indiquer le nom d’une ou de plusieurs rubriques en fonction desquelles les valeurs renvoyées doivent être groupées. Cette clause sert à renvoyer un ensemble de valeurs statistiques sous la forme d’une rangée par groupe (comme dans un sous-récapitulatif sous FileMaker Pro). HAVING (page 30) Indiquer les conditions s’appliquant à des groupes d’enregistrements (par exemple, afficher uniquement les services pour lesquels le total des salaires est supérieur à 200 000 euros). Cette clause n’est valide que si vous avez déjà défini une clause GROUP BY. UNION (page 29) Combinez les résultats de deux instructions SELECT ou plus en un seul. ORDER BY (page 30) Indiquer le mode de tri appliqué aux enregistrements. FOR UPDATE (page 31) Pour procéder à des mises à jour positionnées ou des suppressions positionnées via les curseurs SQL Remarque Si vous essayez de récupérer des données depuis une table sans colonne, l’instruction SELECT échouera. Chapitre 5 | Standards pris en charge 29 Clause FROM La clause FROM indique quelles tables sont utilisées dans l’instruction SELECT. La syntaxe de cette clause est la suivante : FROM noms_tables [alias_table] noms_tables peut être un ou plusieurs noms de tables simples appartenant au répertoire de travail en cours ou des chemins d’accès complets. alias_table peut servir à attribuer à la table un nom plus descriptif ou à abréger un nom de table long. Vous pouvez faire précéder le nom des rubriques du nom ou de l’alias de la table. Par exemple, à partir de la spécification de table FROM employés E, vous pouvez faire référence à la rubrique NOM_FAMILLE sous la forme E.NOM_FAMILLE. Vous devez impérativement employer des alias de tables quand l’instruction SELECT joint une table à elle-même. Par exemple : SELECT * FROM employés E, employés F WHERE E.id_directeur = F.id_employé Le signe égal (=) n’inclut que les rangées correspondantes dans le résultat. Si vous joignez plusieurs tables et que vous souhaitez ignorer toutes les rangées qui n’ont pas de rangées correspondantes dans les deux tables sources, vous pouvez employer une instruction INNER JOIN. Par exemple : SELECT * FROM Vendeurs INNER JOIN Informations_Ventes ON Vendeurs.ID_Vendeur = Informations_Ventes.ID_Vendeur Remarque JOINTURE EXTERNE n’est actuellement pas prise en charge. Clause WHERE La clause WHERE indique les conditions que les enregistrements doivent remplir pour être extraits. Elle spécifie ces conditions sous la forme suivante : WHERE expr1 opérateur_rel expr2 expr1 et expr2 peuvent être des noms de rubriques, des valeurs constantes ou des expressions. opérateur_rel est l’opérateur relationnel qui lie les deux expressions. Par exemple, l’instruction SELECT suivante extrait le nom des employés dont le salaire est supérieur ou égal à 2 000 euros. SELECT nom_famille,prénom FROM emp WHERE salaire >= 2000 Remarque Si vous utilisez des noms entièrement qualifiés dans la liste (de projection), vous devez également utiliser les noms entièrement qualifiés dans la clause WHERE liée. Clause GROUP BY La clause GROUP BY indique les noms d’une ou de plusieurs rubriques devant servir à grouper les valeurs renvoyées. Cette clause sert à renvoyer un jeu de valeurs statistiques. La syntaxe de cette clause est la suivante : GROUP BY expressions_col expressions_col doit correspondre à l’expression de colonne utilisée dans la clause SELECT. Une expression de colonne peut être un ou plusieurs noms de rubriques de la table de base de données séparés par des virgules, ou une ou plusieurs expressions séparées par des virgules. L’exemple suivant calcule la somme des salaires de chaque service. SELECT id_serv, SUM (salaire) FROM emp GROUP BY id_serv Cette instruction renvoie une rangée pour chaque ID de service distinct. Chaque rangée contient l’ID du service et la somme des salaires des employés de ce service. 30 Guide ODBC et JDBC FileMaker Clause HAVING La clause HAVING permet de spécifier des conditions pour des groupes d’enregistrements (par exemple, afficher uniquement les services pour lesquels le total des salaires est supérieur à 200 000 euros). Cette clause n’est valide que si vous avez déjà défini une clause GROUP BY. La syntaxe de cette clause est la suivante : HAVING expr1 opérateur_rel expr2 expr1 et expr2 peuvent être des noms de rubriques, des valeurs constantes ou des expressions. Ces expressions n’ont pas besoin de correspondre à une expression de colonne de la clause SELECT. opérateur_rel est l’opérateur relationnel qui lie les deux expressions. L’exemple suivant renvoie uniquement les services dont la somme des salaires est supérieure à 200 000 euros : SELECT id_serv, SUM (salaire) FROM emp GROUP BY id_serv HAVING SUM (salaire) > 200000 Opérateur UNION L’opérateur UNION combine les résultats de deux instructions SELECT ou plus en un seul et même résultat. Ce résultat correspond à l’ensemble des enregistrements renvoyés par les instructions SELECT. Par défaut, le système ne renvoie pas les enregistrements en double. Si vous les voulez aussi, employez le mot-clé ALL (UNION ALL). La syntaxe de cette clause est la suivante : instruction_SELECT UNION [ALL] instruction_SELECT Avec l’opérateur UNION, les listes de sélection de chaque instruction SELECT doivent avoir le même nombre d’expressions de colonne, avec les mêmes types de données et le même ordre. Par exemple : SELECT nom_famille, salaire, date_embauche FROM emp UNION SELECT nom, paie, date_naissance FROM personne Cet exemple utilise le même nombre d’expressions de colonne et chaque expression de colonne, placée dans le même ordre, utilise le même type de données. L’exemple suivant n’est pas valide car les types de données des expressions de colonne sont différents (la rubrique SALAIRE de la table EMP n’emploie pas le même type de données que la rubrique NOM_FAMILLE de la table AUGMENTATIONS). Cet exemple utilise le même nombre d’expressions de colonne dans chaque instruction SELECT mais ces expressions ne sont pas dans le même ordre par type de données. SELECT nom_famille, salaire FROM emp UNION SELECT salaire, nom_famille FROM augmentations Clause ORDER BY La clause ORDER BY indique comment les enregistrements doivent être triés. La syntaxe de cette clause est la suivante : ORDER BY {expression_tri [DESC | ASC]}, ... expression_tri peut être des noms de rubriques, des expressions ou le numéro de position de l’expression de colonne à utiliser. Par défaut, le tri est ascendant (ASC). Par exemple, pour trier par nom_famille, puis par prénom, vous pouvez employer l’une des instructions SELECT suivantes : SELECT id_emp, nom_famille, prénom FROM emp ORDER BY nom_famille, prénom ou SELECT id_emp, nom_famille, prénom FROM emp ORDER BY 2,3 Dans le second exemple, nom_famille est la deuxième expression de colonne après SELECT. ORDER BY 2 trie donc par nom_famille. Chapitre 5 | Standards pris en charge 31 Clause FOR UPDATE La clause FOR UPDATE procède à des mises à jour positionnées ou des suppressions positionnées via les curseurs SQL. La syntaxe de cette clause est la suivante : FOR UPDATE [OF expressions_colonne] expressions_colonne est une liste de noms de rubriques de la table de base de données que vous souhaitez mettre à jour, séparés par une virgule. C’est un argument facultatif. L’exemple suivant renvoie tous les enregistrements de la base de données d’employés pour lesquels la rubrique SALAIRE a une valeur supérieure à 2 000 euros. Une fois l’enregistrement récupéré, il est verrouillé. Si vous mettez à jour l’enregistrement ou que vous le supprimez, le verrou est maintenu jusqu’à ce que vous validiez la modification. Sinon, le verrou disparaît quand vous passez à l’enregistrement suivant. SELECT * FROM emp WHERE salaire > 2000 FOR UPDATE OF nom_famille, prénom, salaire Exemples supplémentaires : Utilisation de Exemple de code SQL Constante de type texte SELECT 'ChienChat' FROM Vendeurs Constante de type numérique SELECT 999 FROM Vendeurs Constante de type date SELECT DATE '2004-06-05' FROM Vendeurs Constante de type heure SELECT TIME '02:49:03' FROM Vendeurs Constante de type horodatage SELECT TIMESTAMP '2004-06-05 02:49:03' FROM Vendeurs Colonne de texte SELECT Nom_Société FROM Informations_Ventes SELECT DISTINCT Nom_Société FROM Informations_Ventes colonne de type numérique SELECT Quantité FROM Informations_Ventes SELECT DISTINCT Quantité FROM Informations_Ventes Colonne de type date SELECT Date_Vente FROM Informations_Ventes SELECT DISTINCT Date_Vente FROM Informations_Ventes Colonne de type heure SELECT Heure_Vente FROM Informations_Ventes SELECT DISTINCT Heure_Vente FROM Informations_Ventes Colonne de type horodatage SELECT Horodatage_Vente FROM Informations_Ventes SELECT DISTINCT Horodatage_Vente FROM Informations_Ventes a Colonne Conteneur SELECT Brochures_Société FROM Informations_Ventes SELECT GETAS(Logo_Société, 'JPEG') FROM Informations_Ventes Caractère joker * SELECT * FROM Vendeurs SELECT DISTINCT * FROM Vendeurs a. Un conteneur de fichier de base de données est une rubrique qui contient un fichier de base de données FileMaker. Notes à propos des exemples Une colonne est une référence à une rubrique du fichier de base de données FileMaker (cette rubrique peut contenir de nombreuses valeurs distinctes). Le caractère générique (*) est une manière plus courte de dire « tout ». L’exemple SELECT * FROM Vendeurs fait apparaître toutes les rangées de la table Vendeurs. L’exemple SELECT DISTINCT * FROM Vendeurs fait apparaître toutes les rangées uniques de la table Vendeurs (sans doublons). Remarque Il se peut que les instructions SELECT * dans des bases de données volumineuses ne fonctionnent pas correctement. Pour éviter toutes éventuelles confusions, n’utilisez aucun caractère de remplacement et indiquez la table et les noms des colonnes sans leurs alias. 32 Guide ODBC et JDBC FileMaker Sélection du contenu d’une rubrique Multimédia : fonctions CAST() et GetAs() Vous pouvez récupérer depuis une rubrique Multimédia des données binaires, des informations de référence de fichier ou des données appartenant à un type de fichier particulier. Pour récupérer des données binaires, utilisez une instruction SELECT standard. Par exemple : SELECT Brochures_Société FROM Informations_Ventes Si les données du fichier ou les données JPEG existent, l’instruction SELECT récupère les données dans un formulaire binaire ; dans le cas contraire, l’instruction SELECT renvoie la valeur <null>. Pour récupérer des informations de référence de fichier depuis une rubrique Multimédia, comme le chemin d’accès à un fichier, à une image ou à une séquence Quicktime, utilisez la fonction CAST en même temps que l’instruction SELECT. Par exemple : SELECT CAST(Brochures_Société AS VARCHAR(NNN)) FROM Informations_Ventes Dans cet exemple : 1 Si vous avez inséré un fichier dans la rubrique Multimédia en utilisant FileMaker Pro mais que vous avez enregistré uniquement une référence dans le fichier, l’instruction SELECT récupère les informations de référence du fichier comme étant de type SQL_VARCHAR. 1 Si vous avez inséré les commentaires d’un fichier dans la rubrique Multimédia en utilisant FileMaker Pro, l’instruction SELECT récupère le nom du fichier. 1 Si vous avez importé un fichier dans la rubrique Multimédia depuis une autre application, l’instruction SELECT affiche ? (le fichier apparaît sous la forme Untitled.dat dans FileMaker Pro). Pour récupérer des données depuis une rubrique Multimédia, utilisez la fonction GetAs et indiquez le type du fichier en fonction du mode d’insertion des données dans la rubrique Multimédia dans FileMaker Pro. 1 Si les données ont été insérées à l’aide de la commande Insérer > fichier, indiquez 'FILE' dans la fonction GetAs. Par exemple : SELECT GetAs(Brochures_Société, 'FILE') FROM Informations_Ventes 1 Si les données ont été insérées à l’aide de la commande Insérer > son (audio standard — format brut Mac OS), indiquez 'snd' dans la fonction GetAs. Par exemple : SELECT GetAs(Réunion_Société, 'snd') FROM LettreInfo_Société 1 Si les données ont été insérées à l’aide de la commande Insérer > objet (données multimédia OLE), indiquez 'EMBO' dans la fonction GetAs. Par exemple : SELECT GetAs(Résultats_Société, 'EMBO') FROM Rapport_Annuel 1 Si les données ont été insérées à l’aide de la commande Insérer > image, faites glisser et déposez le fichier, ou copiez-le depuis le Presse-papiers, et indiquez l’un des types de fichiers (respecte la casse) répertorié dans le tableau ci-dessous. Par exemple : SELECT GetAs(Logo_Société, 'JPEG') FROM Icônes_Société Type de fichier Description Type de fichier Description 'EMF+' Windows Enhanced Metafile Plus PDF Portable Document Format EPS Embedded PostScript PICT Mac OS (sans en-tête de fichier de 512 octets) FPix Flash (FPX) PNGf Format d’image Bitmap FORK Resource fork (Mac OS) PNTG MacPaint GIFf Graphics Interchange Format qtif Fichier image QuickTime JPEG Photos SGI Format bitmap générique JP2 JPEG 2000 TIFF Format de fichier trame pour images numériques Chapitre 5 Type de fichier Description Type de fichier Description META Métafichier Windows (amélioré) TPIC Targa METO Windows Metafile (original) XMLO Objets de modèle moov Ancien format QuickTime (Mac OS) 8BPS PhotoShop (PSD) | Standards pris en charge 33 DELETE L’instruction DELETE permet de supprimer des enregistrements d’une table de base de données. La syntaxe de cette instruction est la suivante&nbsp;: DELETE FROM nom_table [ WHERE { conditions } ] Remarque La clause WHERE indique quels enregistrements doivent être supprimés. Si vous n’incluez pas le mot-clé WHERE, tous les enregistrements de la table seront supprimés (mais la table restera intacte). Voici un exemple d’instruction DELETE appliquée à la table Employés&nbsp;: DELETE FROM emp WHERE id_emp = 'E10001' Chaque instruction DELETE supprime chaque enregistrement réunissant les conditions définies dans la clause WHERE. Ici, chaque enregistrement d’employé contenant le numéro d’identification E10001 est supprimé. Les numéros d’identification étant uniques dans la table Employés, un seul enregistrement est supprimé. INSERT L’instruction SQL INSERT permet de créer des enregistrements dans une table de base de données. Vous pouvez spécifier, au choix&nbsp;: 1 Une liste de valeurs à insérer sous la forme d’un nouvel enregistrement 1 Une instruction SELECT permettant de copier les données d’une autre table et de les insérer sous forme de nouveaux enregistrements La syntaxe de cette instruction est la suivante&nbsp;: INSERT INTO nom_table [(nom_col, ...)] VALUES (expr, ...) nom_col est une liste facultative de noms de colonnes qui indique le nom des différentes colonnes (dans l’ordre approprié) dont les valeurs sont spécifiées dans la clause VALUES. Si vous omettez nom_col, les expressions de valeur (expr) doivent fournir des valeurs pour toutes les colonnes définies dans la table et elles doivent figurer dans le même ordre que les colonnes définies pour la table. expr représente la liste d’expressions donnant les valeurs des colonnes du nouvel enregistrement. Généralement, les expressions sont les valeurs constantes des colonnes (mais il peut également s’agir d’une sous-requête). Les valeurs de type chaîne de caractères doivent être placées entre guillemets simples ('). Pour inclure un guillemet simple (correspondant à une apostrophe) dans une valeur de type chaîne de caractères placée entre guillemets simples, utilisez deux guillemets simples consécutifs (par exemple 'L''instance'). Les valeurs de type date, heure et horodatage doivent être placées entre accolades {}. Les valeurs logiques qui sont des caractères doivent être délimitées par des points (par exemple, .T. ou .F.). Les sous-requêtes doivent être entre parenthèses. L’exemple suivant insère une liste d’expressions&nbsp;: INSERT INTO emp (nom_famille, prénom, id_emp, salaire, date_embauche) VALUES ('Martin', 'Robert', 'E22345', 27500, 5/5/2004) Chaque instruction INSERT ajoute un enregistrement à la table de base de données. Ici, un enregistrement a été ajouté à la table EMP (employés) de la base de données, avec des valeurs pour cinq colonnes. Les autres colonnes de la table n'ont pas reçu de valeur. Autrement dit, leur valeur est nulle. Remarque Dans des rubriques Multimédia, vous ne pouvez INSERER que du texte. 34 Guide ODBC et JDBC FileMaker L’instruction SELECT est une requête qui renvoie des valeurs pour chaque valeur nom_col spécifiée dans la liste de noms de colonnes. En employant une instruction SELECT plutôt qu’une liste d’expressions de valeurs, vous avez la possibilité de sélectionner un ensemble de rangées dans une table et de l’insérer dans une autre table à l’aide d’une même instruction INSERT. Voici un exemple d’instruction INSERT associée à une instruction SELECT&nbsp;: INSERT INTO emp1 (prénom, nom_famille, id_emp, service, salaire) SELECT prénom, nom_famille, id_emp, service, salaire from emp WHERE serv = ‘D050’ Dans ce type d’instruction INSERT, le nombre de colonnes à insérer doit être le même que celui des colonnes spécifiées dans l’instruction SELECT et les colonnes doivent être identiques dans les deux instructions (comme c’est le cas avec une liste de valeurs dans l’autre type d’instruction INSERT). Par exemple, la première colonne insérée correspond à la première colonne sélectionnée, la deuxième à la deuxième colonne sélectionnée, et ainsi de suite. La taille et le type de données de ces colonnes correspondantes doivent être compatibles. Chaque colonne de la liste SELECT doit avoir un type de données accepté par le pilote client ODBC ou JDBC pour une opération INSERT/UPDATE sur la colonne correspondante de la liste INSERT. Les valeurs sont tronquées si la taille de la valeur de la colonne SELECT est supérieure à celle de la colonne INSERT correspondante. L’instruction SELECT est évaluée avant l’insertion des valeurs. UPDATE L’instruction UPDATE permet de modifier les enregistrements d’une table de base de données. La syntaxe de cette instruction est la suivante&nbsp;: UPDATE nom_table SET nom_col = expr, ... [ WHERE { conditions } ] nom_col est le nom d’une colonne dont la valeur doit être modifiée. Vous pouvez modifier plusieurs colonnes dans la même instruction. expr est la nouvelle valeur de la colonne. Généralement, les expressions sont les valeurs constantes des colonnes (mais il peut également s’agir d’une sous-requête). Les valeurs de type chaîne de caractères doivent être placées entre guillemets simples ('). Pour inclure un guillemet simple (correspondant à une apostrophe) dans une valeur de type chaîne de caractères placée entre guillemets simples, utilisez deux guillemets simples consécutifs (par exemple 'L''instance'). Les valeurs de type date, heure et horodatage doivent être placées entre accolades {}. Les valeurs logiques qui sont des caractères doivent être délimitées par des points (par exemple, .T. ou .F.). Les sous-requêtes doivent être entre parenthèses. La clause WHERE peut être toute clause valide. Elle détermine les enregistrements à modifier. Voici un exemple d’instruction UPDATE appliquée à la table Employés&nbsp;: UPDATE emp SET salaire=32000, exempt=1 WHERE id_emp = 'E10001' Cette instruction UPDATE a pour effet de modifier chaque enregistrement réunissant les conditions définies dans la clause WHERE. Ici, il s’agit de changer le salaire et le statut d’exemption pour tous les employés dont le numéro d’identification est E10001. Les numéros d’identification étant uniques dans la table Employés, un seul enregistrement est mis à jour. Voici un exemple comportant une sous-requête&nbsp;: UPDATE emp SET salaire = (SELECT avg(salaire) from emp) WHERE id_emp = 'E10001' Ici, le salaire de l’employé dont le numéro d’identification est E10001 est remplacé par le salaire moyen de la société. Remarque Dans des rubriques Multimédia, vous ne pouvez opérer des MISES A JOUR qu’avec du texte. Chapitre 5 | Standards pris en charge 35 CREATE TABLE L’instruction CREATE TABLE permet de créer une table dans un fichier de base de données. La syntaxe de cette instruction est la suivante&nbsp;: CREATE TABLE nom_table liste_éléments_de_table [NOT NULL] Dans cette instruction, vous devez indiquer le nom et le type de données de chaque colonne. nom_table et liste_éléments_de_table sont limités à 100 caractères chacun. Quand vous définissez une colonne en tant que NOT NULL , l’option de validation Non vide est sélectionnée automatiquement pour la rubrique correspondante dans le fichier de base de données FileMaker. La rubrique est marquée en tant que Valeur requise dans l’onglet Rubriques de la boîte de dialogue Gérer la base de données pour FileMaker Pro. Exemples Utilisation de Exemple de code SQL Colonne de texte CREATE TABLE T1 (C1 VARCHAR, C2 VARCHAR (50), C3 VARCHAR (1001), C4 VARCHAR (500276)) colonne de type texte, NOT CREATE TABLE T1NN (C1 VARCAR NOT NULL, C2 VARCAR (50) NOT NULL, C3 VARCAR (1001) NOT NULL, C4 VARCAR (500276) NOT NULL) NULL colonne de type numérique CREATE TABLE T2 (C1 DECIMAL, C2 DECIMAL (10,0), C3 DECIMAL (7539,2), C4 DECIMAL (497925,301)) Colonne de type date CREATE TABLE T3 (C1 DATE, C2 DATE, C3 DATE, C4 DATE) Colonne de type heure CREATE TABLE T4 (C1 HEURE, C2 HEURE, C3 HEURE, C4 HEURE) Colonne de type horodatage CREATE TABLE T5 (C1 HORODATAGE, C2 HORODATAGE, C3 HORODATAGE, C4 HORODATAGE) Colonne Conteneur CREATE TABLE T6 (C1 CONTENEUR, C2 CONTENEUR, C3 CONTENEUR, C4 CONTENEUR) ALTER TABLE L’instruction ALTER TABLE permet de modifier la structure d’une table existante d’un fichier de base de données. Chaque instruction ne permet de modifier qu’une colonne. La syntaxe de cette instruction est la suivante&nbsp;: ALTER TABLE nom_table ADD [COLUMN] définition_colonne ALTER TABLE nom_table DROP [COLUMN] nom_colonne_non_qualifié Vous devez connaître la structure de la table et savoir comment vous souhaitez la modifier avant d’utiliser l’instruction ALTER TABLE. Exemples Pour Exemple de code SQL Ajouter des colonnes ALTER TABLE Vendeurs ADD (C1 VARCAR) Supprimer des colonnes ALTER TABLE Vendeurs DROP (C1) CREATE INDEX L’instruction CREATE INDEX permet d’accélérer les recherches dans un fichier de base de données. La syntaxe de cette instruction est la suivante&nbsp;: CREATE INDEX [ nom_index ][ON] nom_table.nom_col CREATE INDEX ne fonctionne qu’avec une colonne unique (les index multi-colonne ne sont pas pris en charge). Les index ne sont pas autorisés sur les colonnes correspondant à des rubriques de type conteneur ou statistique, à des rubriques employant des options de stockage global ou à des rubriques de type calcul non stockées. 36 Guide ODBC et JDBC FileMaker Quand vous créez un index pour une colonne de type texte, l’option de stockage Minimal est sélectionnée automatiquement dans Indexation pour la rubrique correspondante du fichier de base de données FileMaker. Quand vous créez un index pour une colonne qui n’est pas de type texte (ou pour une colonne de type texte au format japonais), l’option de stockage Tout est sélectionnée automatiquement dans Indexation pour la rubrique correspondante du fichier de base de données FileMaker. Quand vous créez un index pour une colonne, l’option de stockage Indexation automatique si nécessaire est sélectionnée automatiquement dans Indexation pour la rubrique correspondante du fichier de base de données FileMaker. Exemple CREATE INDEX monIndex ON Vendeurs.ID_vendeur DROP INDEX, instruction L’instruction DROP INDEX permet de supprimer un index d’un fichier de base de données. La syntaxe de cette instruction est la suivante&nbsp;: DROP INDEX [ON] nom_table.nom_col Vous pouvez supprimer un index quand votre fichier de base de données est trop volumineux ou quand vous n’employez pas souvent une rubrique dans les requêtes. Si les performances de vos requêtes ne sont pas satisfaisantes et si vous travaillez sur un fichier de base de données FileMaker extrêmement volumineux contenant un grand nombre de rubriques de type texte indexées, pensez à supprimer les index de certaines rubriques. Pensez également à supprimer les index des rubriques que vous utilisez rarement dans des instructions SELECT. Quand vous supprimez un index pour une colonne, l’option de stockage Aucun est sélectionnée et l’option Indexation automatique si nécessaireest désélectionnée automatiquement dans Indexation pour la rubrique correspondante du fichier de base de données FileMaker. L’attribut PREVENT INDEX CREATION n’est pas pris en charge. Exemple DROP INDEX ON Vendeurs.ID_Vendeur Fonctions statistiques SQL Les fonctions statistiques renvoient une valeur unique à partir d’un jeu d’enregistrements. Vous pouvez employer une fonction statistique dans une instruction SELECT avec un nom de rubrique (par exemple, AVG(SALAIRE)) ou en combinaison avec une expression de colonne (par exemple, AVG(SALAIRE * 1.07)). Vous pouvez faire précéder l’expression de colonne de l’opérateur DISTINCT pour éliminer les doublons. Par exemple : COUNT (DISTINCT nom_famille) Dans cet exemple, seules les valeurs de nom de famille uniques sont comptées. Important Utilisez les majuscules pour les noms des fonctions SQL (certaines respectent la casse). Fonctions statistiques Résultat SUM Total des valeurs d’une expression de rubrique de type numérique. Par exemple, SUM(SALAIRE) renvoie la somme de toutes les valeurs de la rubrique SALAIRE. AVG Moyenne des valeurs d’une expression de rubriques de type numérique. Par exemple, AVG(SALAIRE) renvoie la moyenne de toutes les valeurs de la rubrique SALAIRE. Chapitre 5 | Standards pris en charge 37 Fonctions statistiques Résultat COUNT Nombre de valeurs d’une expression de rubrique. Par exemple, COUNT(NOM) renvoie le nombre de valeurs de la rubrique NOM. Utilisé avec un nom de rubrique, COUNT renvoie le nombre de valeurs non nulles de la rubrique. COUNT(*) est une forme spéciale qui renvoie le nombre d’enregistrements du jeu, en incluant ceux qui contiennent des valeurs nulles. MAX Valeur maximale d’une expression de rubrique. Par exemple, MAX(SALAIRE) renvoie la valeur maximale de la rubrique SALAIRE. MIN Valeur minimale d’une expression de rubrique. Par exemple, MAX(SALAIRE) renvoie la valeur minimale de la rubrique SALAIRE. Exemples SELECT SUM (Informations_Ventes.Quantité) AS stat FROM Informations_Ventes SELECT AVG (Informations_Ventes.Quantité) AS stat FROM Informations_Ventes SELECT COUNT (Informations_Ventes.Quantité) AS stat FROM Informations_Ventes SELECT MAX (Informations_Ventes.Quantité) AS stat FROM Informations_Ventes WHERE Informations_Ventes.Quantité < 3000 SELECT MIN (Informations_Ventes.Quantité) AS stat FROM Informations_Ventes WHERE Informations_Ventes.Quantité < 3000 Expressions SQL Vous pouvez utiliser des expressions dans les clauses WHERE, HAVING et ORDER BY des instructions SELECT pour former des requêtes de base de données complexes. Les éléments d’expression valides sont les suivants : Noms de rubriques Opérateurs numériques opérateurs relationnels ; Constantes et littéraux Opérateurs de caractères Opérateurs logiques notation en virgule flottante ; Opérateurs de dates Fonctions Noms de rubriques L’expression la plus courante est un simple nom de rubrique, tel que calc ou Informations_Ventes.ID_facture. Constantes et littéraux Une constante est une valeur qui ne change pas. Par exemple, dans l’expression PRIX * 1.05, la valeur 1.05 est une constante. Vous pouvez aussi affecter la valeur 30 à la constante Nombre_de_jours_en_juin. Un littéral est un autre type de constante, mais au lieu de recevoir une valeur, le littéral lui-même est la valeur, telle que « Paris » ou « 14:35:10 ». Un littéral est une constante dont la valeur est le nom du littéral lui-même. Les constantes de type chaîne de caractères (telles que les littéraux) doivent être placées entre guillemets simples ('). Pour inclure un guillemet simple (correspondant à une apostrophe) dans une constante de type chaîne de caractères placée entre guillemets simples, utilisez deux guillemets simples consécutifs (par exemple 'L''instance'). Les constantes de type date, heure et horodatage doivent être placées entre accolades ({}), sous la forme {D '05-06-2005'}, {14:35:10} ou {HD '05-06-2005 14:35:10'}. Il y a une exception : la syntaxe SQL-92 requiert des formats de date et d’heure ISO sans accolades : 1 DATE 'JJ-MM-AAAA' 1 HEURE 'HH:MM:SS' 1 HORODATAGE 'JJ-MM-AAAA HH:MM:SS 38 Guide ODBC et JDBC FileMaker ' Constante Syntaxe acceptable (exemples) Texte 'Paris' Nombre 1.05 Date DATE '2005-06-05' { D '2005-06-05' } { 06/05/2005 } { 06/05/05 } Heure HEURE '14:35:10' { H '14:35:10' } {14:35:10} Horodatage HORODATAGE '05-06-05 14:35:10' { HD '05-06-2005 14:35:10'} { 06/05/2005 14:35:10 } {2005-06-05 14:35:10} { 06/05/05 14:35:10 } Assurez-vous que l’option De type : Année à 4 chiffres n’est pas sélectionnée comme option de validation dans le fichier de base de données FileMaker pour une rubrique qui utilise cette syntaxe d’année à deux chiffres. Au moment de saisir la date et l’heure, utilisez le format de la locale du fichier de base de données. Par exemple, si la base de données a été créée sur un système italien, respectez les formats italiens de date et d’heure. Les valeurs logiques de type chaîne de caractères doivent être délimitées par des points. Les constantes logiques sont .T. et 1 pour True (Vrai) et .F. et 0 pour False (Faux). Pour garantir la portabilité de votre code, utilisez 1 et 0. Notification en virgule flottante/scientifique Vous pouvez inclure une notation en virgule flottante. Exemple SELECT colonne1, 3.4E+7 FROM table1 WHERE calc < 3.4E-6 * colonne2 Opérateurs numériques Vous pouvez inclure les opérateurs suivants dans une expression numérique : +, -, *, /, et ^ ou ** (puissance). Vous pouvez faire précéder une expression numérique d’un plus (+) ou d’un moins (-) unaire. Opérateurs de caractères Vous pouvez concaténer des caractères. Exemples Dans les exemples suivants, nom_famille a pour valeur 'MARTIN ' et prénom 'ROBERT ' : Opérateur Concaténation Exemple Résultat + Laisse les espaces finaux à leur place prénom + nom_famille 'ROBERT MARTIN ' - Déplace les espaces finaux à la fin prénom - nom_famille 'ROBERTMARTIN ' Chapitre 5 | Standards pris en charge 39 Opérateurs de dates Vous pouvez modifier des dates. Exemples Dans les exemples suivants, date_embauche a pour valeur {30/01/2004}. Opérateur Effet sur la date Exemple Résultat + Ajoute un nombre de jours à une date date_embauche + 5 {02/04/2004} - Calcule le nombre de jours entre deux dates ou date_embauche - {01/01/2004} 29 soustrait un nombre de jours d’une date date_embauche - 10 {01/20/2004} Exemples supplémentaires : SELECT Date_Vente, Date_Vente + 30 AS stat FROM Informations_Ventes SELECT Date_Vente, Date_Vente - 30 AS stat FROM Informations_Ventes opérateurs relationnels ; Opérateur Signification = Egal <> N’est pas égal à > Supérieur à >= Supérieur ou égal à < Inférieur à <= Inférieur ou égal à LIKE Identique à une structure NOT LIKE Pas identique à une structure IS NULL A une valeur nulle IS NOT NULL N’a pas de valeur nulle BETWEEN Plage de valeurs entre une limite inférieure et une limite supérieure IN Membre d’un jeu de valeurs indiquées ou d’une sous-requête NOT IN Non membre d’un jeu de valeurs indiquées ou d’une sous-requête EXISTS Renvoie True (Vrai) si une sous-requête a renvoyé au moins un enregistrement ANY Compare une valeur à chaque valeur renvoyée par une sous-requête (l’opérateur doit être précédé de =, <>, >, >=, < ou <=); =Any est équivalent à In TOUT Compare une valeur à chaque valeur renvoyée par une sous-requête (l’opérateur doit être précédé de =, <>, >, >=, <, or <=) Exemples SELECT Informations_Ventes.ID_Facture FROM Informations_Ventes WHERE Informations_Ventes.ID_Vendeur = 'SP-1' SELECT Informations_Ventes.Quantité FROM Informations_Ventes WHERE Informations_Ventes.ID_Facture <> 125 SELECT Informations_Ventes.Quantité FROM Informations_Ventes WHERE Informations_Ventes.Quantité > 3000 SELECT Informations_Ventes.Heure_Vente FROM Informations_Ventes WHERE Informations_Ventes.Heure_Vente < '12:00:00' 40 Guide ODBC et JDBC FileMaker SELECT Informations_Ventes.Nom_Société FROM Informations_Ventes WHERE Informations_Ventes.Nom_Société LIKE '%Université' SELECT Informations_Ventes.Nom_Société FROM Informations_Ventes WHERE Informations_Ventes.Nom_Société NOT LIKE '%Université' SELECT Informations_Ventes.Montant FROM Informations_Ventes WHERE Informations_Ventes.Montant IS NULL SELECT Informations_Ventes.Montant FROM Informations_Ventes WHERE Informations_Ventes.Montant IS NOT NULL SELECT Informations_Ventes.ID_Facture FROM Informations_Ventes WHERE Informations_Ventes.ID_Facture BETWEEN 1 AND 10 SELECT COUNT(Informations_Ventes.ID_Facture) AS stat FROM Informations_Ventes WHERE Informations_Ventes.ID_Facture IN (50,250,100) SELECT COUNT(Informations_Ventes.ID_Facture) AS stat FROM Informations_Ventes WHERE Informations_Ventes.ID_Facture NOT IN (50,250,100) SELECT COUNT(Informations_Ventes.ID_Facture) AS stat FROM Informations_Ventes WHERE Informations_Ventes.ID_FACTURE NOT IN (SELECT Informations_Ventes.ID_Facture FROM Informations_Ventes WHERE Informations_Ventes.ID_Vendeur = 'SP-4') SELECT * FROM Informations_Ventes WHERE EXISTS (SELECT Informations_Ventes.Quantité FROM Informations_Ventes WHERE Informations_Ventes.ID_Vendeur IS NOT NULL) SELECT * FROM Informations_Ventes WHERE Informations_Ventes.Quantité = ANY (SELECT Informations_Ventes.Quantité FROM Informations_Ventes WHERE Informations_Ventes.ID_Vendeur = 'SP-1') SELECT * FROM Informations_Ventes WHERE Informations_Ventes.Quantité = ALL (SELECT Informations_Ventes.Quantité FROM Informations_Ventes WHERE Informations_Ventes.ID_Vendeur IS NULL) Opérateurs logiques Vous pouvez combiner deux conditions ou davantage. Ces conditions doivent être liées par AND ou OR, sous la forme : salaire = 40000 AND exempt = 1 L’opérateur logique NOT sert à inverser la signification, sous la forme : NOT (salaire = 40000 AND exempt = 1) Exemples SELECT * FROM Informations_Ventes WHERE Informations_Ventes.Nom_Société NOT LIKE '%Université' AND Informations_Ventes.Montant > 3000 SELECT * FROM Informations_Ventes WHERE (Informations_Ventes.Nom_Société LIKE '%Université' OR Informations_Ventes.Montant > 3000) AND Informations_Ventes.ID_Vendeur = 'SP-1' Chapitre 5 | Standards pris en charge 41 Fonctions Les pilotes clients ODBC et JDBC prennent en charge un grand nombre de fonctions que vous pouvez utiliser dans des expressions. Certaines fonctions renvoient des chaînes de caractères, d’autres des nombres et d’autres des dates. Important Utilisez les majuscules pour les noms des fonctions SQL (certaines respectent la casse). Fonctions qui renvoient des chaînes de caractères Description Exemple CHR Convertit un code ASCII en chaîne d’un caractère CHR(67) renvoie C RTRIM Supprime les espaces finaux d’une chaîne RTRIM('ABC ') renvoie ABC TRIM Supprime les espaces de début et finaux d’une chaîne TRIM(' ABC ') renvoie ABC LTRIM Supprime les espaces de début d’une chaîne UPPER Transforme chaque lettre d’une chaîne en majuscule UPPER('Alain') renvoie ALAIN LOWER Transforme chaque lettre d’une chaîne en minuscule LOWER('Alain') renvoie alain LEFT Renvoie les caractères les plus à gauche d’une chaîne LEFT('Mathieu',3) renvoie Mat RIGHT Renvoie les caractères les plus à droites d’une chaîne RIGHT('Mathieu',4) renvoie thieu SUBSTR Renvoie une sous-chaîne de chaîne avec les SUBSTR('Conrad',2,3) renvoie onr paramètres de la chaîne, le premier caractère à extraire SUBSTR('Conrad',2) renvoie onrad et le nombre de caractères à extraire (facultatif) SPACE Génère une chaîne d’espaces SPACE(5) renvoie ' STRVAL Convertit une valeur de n’importe quel type en chaîne de caractères STRVAL('Woltman') renvoie Woltman STRVAL(5 * 3) renvoie 15 STRVAL(4 = 5) renvoie 'False' STRVAL({12/25/2004}) renvoie 12/25/ LTRIM(' ABC') renvoie ABC ' 2004 (format américain) TIME Renvoie l’heure du jour sous forme de chaîne USERNAME Renvoie le nom d’utilisateur employé pour établir la connexion A 21 h 49, TIME() renvoie 21:49:00 Exemples SELECT CHR(67) + SPACE(1) + CHR(70) FROM Vendeurs SELECT RTRIM(' ' + Vendeurs.ID_Vendeur) AS stat FROM Vendeurs SELECT TRIM(SPACE(1) + Vendeurs.ID_Vendeur) AS stat FROM Vendeurs SELECT LTRIM(' ' + Vendeurs.ID_Vendeur) AS stat FROM Vendeurs SELECT UPPER(Vendeurs.Vendeur) AS stat FROM Vendeurs SELECT LOWER(Vendeurs.Vendeur) AS stat FROM Vendeurs SELECT LEFT(Vendeurs.Vendeur, 5) AS stat FROM Vendeurs SELECT RIGHT(Vendeurs.Vendeur, 7) AS stat FROM Vendeurs SELECT SUBSTR(Vendeurs.ID_Vendeur, 2, 2) + SUBSTR(Vendeurs.ID_Vendeur, 4, 2) AS stat FROM Vendeurs SELECT SUBSTR(Vendeurs.ID_Vendeur, 2) + SUBSTR(Vendeurs.ID_Vendeur, 4) AS stat FROM Vendeurs SELECT SPACE(2) + Vendeurs.ID_Vendeur AS ID_Vendeur FROM Vendeurs SELECT STRVAL('60506') AS stat FROM Informations_Ventes WHERE Informations_Ventes.ID_Facture = 1 42 Guide ODBC et JDBC FileMaker SELECT TIME() AS stat FROM Informations_Ventes WHERE Informations_Ventes.ID_Facture = 1 SELECT USERNAME() AS stat FROM Informations_Ventes WHERE Informations_Ventes.ID_Facture = 1 Fonctions qui renvoient des nombres Description Exemple MOD Divise deux nombres et renvoie le reste de la division MOD(10,3) renvoie 1 LEN Renvoie la longueur d’une chaîne LEN('ABC') renvoie 3 MONTH Renvoie la partie d’une date correspondant au mois MOIS({01/30/2004}) renvoie 1 (format américain) DAY Renvoie la partie d’une date correspondant au jour JOUR({01/30/2004}) renvoie 30 (format américain) YEAR Renvoie la partie d’une date correspondant à l’année YEAR({01/30/2004}) renvoie 2004 (format américain) MAX Renvoie le plus grand de deux nombres MAX(66,89) renvoie 89 DAYOFWEEK Renvoie le jour de la semaine (de 1 à 7) d’une expression de date (format américain) MIN Renvoie le plus petit de deux nombres MIN(66,89) renvoie 66 POW Elève un nombre à une puissance POW(7,2) renvoie 49 INT Renvoie la partie entière d’un nombre INT(6.4321) renvoie 6 X Renvoie l’équivalent décimal d’un nombre hexadécimal X'b9' renvoie 185 B Renvoie l’équivalent décimal d’un nombre binaire B'1001' renvoie 9 ROUND Arrondit un nombre ROUND(123 456,0) renvoie 123 ROUND(123 456,2) renvoie 123,46 ROUND(123.456,-2) renvoie 100 NUMVAL Convertit une chaîne de caractères en nombre. Si la chaîne NUMVAL('123') renvoie 123 de caractères n’est pas valide, renvoie 0 VAL Convertit une chaîne de caractères en nombre. Si la chaîne VAL('123') renvoie 123 de caractères n’est pas valide, renvoie 0 DAYOFWEEK({05/01/2004}) renvoie 7 Fonctions qui renvoient des dates Description Exemple DATE Renvoie la date du jour Si la date du jour est le 21.11.05, DATE() renvoie {21.11.05} DATEVAL Convertit une chaîne de caractères en date DATEVAL('30.01.06') renvoie {30.01.06} Ordre de priorité des opérateurs Au fur et à mesure que les expressions se compliquent, l’ordre dans lequel elles sont évaluées devient important. Le tableau suivant montre dans quel ordre les opérateurs sont évalués. Les opérateurs de la première ligne sont évalués en premier et ainsi de suite. Les opérateurs qui figurent sur une même ligne sont évalués de gauche à droite dans l’expression. Ordre de priorité Opérateur 1 '-' unaire, '+' unaire 2 ^, ** 3 *, / Chapitre 5 | Standards pris en charge Ordre de priorité Opérateur 4 +, - 5 =, <>, <, <=, >, >=, Like, Not Like, Is Null, Is Not Null, Between, In, Exists, Any, All 6 Not 7 AND 8 OU 43 L’exemple suivant montre l’importance de l’ordre de priorité : WHERE salaire > 4000 OR date_embauche > {30/01/2004} AND serv = 'D101' Comme l’opérateur AND est évalué en premier, cette requête extrait les employés du service D101 embauchés après le 30 janvier 2004, ainsi que les employés dont le salaire est supérieur à 4000 euros quel que soit leur service ou leur date d’embauche. Pour forcer la clause à être évaluée dans un ordre différent, utilisez des parenthèses pour spécifier les conditions à évaluer en premier. Par exemple : WHERE (salaire > 4000 OR date_embauche > {30/01/2004}) AND serv = 'J101' extrait les employés du service D101 dont le salaire est supérieur à 4 000 euros ou qui ont été embauchés après le 30 janvier 2004 Fonctions de catalogue ODBC Le pilote client ODBC prend en charge les fonctions de catalogue suivantes : 1 SQLTables : les informations de catalogue sont stockées et reportées sous forme de noms d'élément uniques (nom de table seulement). 1 1 1 1 SQLColumns SQLColumnPrivileges SQLDescribeCol SQLGetTypeInfo Fonctions de métadonnées JDBC Le pilote client JDBC prend en charge les fonctions de métadonnées suivantes : 1 1 1 1 getColumns getColumnPrivileges getMetaData getTypeInfo 1 getTables 1 getTableTypes 44 Guide ODBC et JDBC FileMaker Mots-clés SQL réservés Le tableau suivant liste les mots-clés réservés qui ne doivent pas être utilisés comme noms de colonnes, de tables, d’alias ou d’autres objets définis par l’utilisateur. Si vous obtenez des erreurs de syntaxe, ces erreurs peuvent être dues à l’utilisation de l’un de ces mots-clés réservés. Si vous souhaitez utiliser l’un de ces motsclés, utilisez des guillemets pour éviter que le mot soit traité comme un mot-clé. Par exemple, l’instruction Create Table suivante montre comment utiliser le mot-clé « OID » comme nom d’élément de données. create table t ("oid" numeric) Mots-clés réservés ABSOLUTE ACTION AJOUTER AFTER ALIAS TOUT ALLOCATE ALTER AND ANY ARE AS ASC ASSERTION ASYNC AT AUTHORIZATION AVG BEFORE BEGIN BETWEEN BIT BIT_LENGTH BOOLEAN BOTH BREADTH BY CALL CASCADE CASCADED CASE CAST CATALOG CHAR CHARACTER CHARACTER_LENGTH CHAR_LENGTH CHECK CHR CLOSE COALESCE COLLATE COLLATION COLUMN COLUMNS COMMIT COMPLETION CONCAT CONNECT CONNECTION CONSTRAINT CONSTRAINTS CONTINUE CONVERT CORRESPONDING COUNT CREATE CROSS CURDATE CURRENT CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CURTIME CYCLE DATA DATE DAY DAYOFMONTH DAYOFWEEK DEALLOCATE DEC DECIMAL DECLARE DEFAULT DEFERRABLE DEFERRED DELETE DEPTH DESC DESCRIBE DESCRIPTOR DIAGNOSTICS DICTIONARY DISCONNECT DISTINCT DOMAIN DOUBLE DROP EACH ELSE ELSEIF END END_EXEC EQUALS ESCAPE EXCEPT EXCEPTION EXEC EXECUTE EXISTS EXTERNAL EXTRACT FALSE FETCH FIRST FLOAT FLOOR FOR FOREIGN FOUND FROM FULL GENERAL GET GLOBAL GO GOTO GRANT GROUP HAVING HOUR IDENTIFY IF IFNULL IGNORE IMMEDIATE IN INDEX INDICATOR INITIALLY INNER INPUT INSENSITIVE INSERT INT INTEGER INTERSECT INTERVAL INTO IS ISOLATION JOIN KEY LANGUAGE LAST LCASE LEADING LEAVE LEFT LEN LENGTH LESS LEVEL LIKE LIMIT LOCAL LOOP LOWER LTRIM MATCH MAX MIN MINUTE MOD MODIFY MODULE MONTH NAMES NATIONAL NATURAL NCHAR NEW 45 Guide ODBC et JDBC FileMaker Mots-clés réservés NEXT NO NONE NOT NOW NULL NULLIF NUMERIC OBJECT OCTET_LENGTH OF OFF OID OLD ON ONLY OPEN OPERATION OPERATORS OPTION OU COMMANDE OTHERS OUTER OUTPUT OVERLAPS PAD PARAMETERS PARTIAL PENDANT POSITION POW POWER PRECISION PREORDER PREPARE PRESERVE PRIMARY PRIOR PRIVATE PRIVILEGES PROCEDURE PROTECTED PUBLIC RCASE READ REAL RECURSIVE REF REFERENCES REFERENCING RELATIVE SUPPRIMER REPLACE RESIGNAL RESTRICT RETURN RETURNS REVOKE RIGHT ROLE ROLLBACK ROUND ROUTINE ROW ROWS RTRIM SAVEPOINT SCHEMA SCROLL SEARCH SECOND SECTION SELECT SENSITIVE SEQUENCE SESSION SESSION_USER SET SIGNAL SIMILAR SIZE SMALLINT SOME SPACE SQL SQLCODE SQLERROR SQLEXCEPTION SQLSTATE SQLWARNING STATISTICS STRUCTURE SUBSTR SUBSTRING SUM SYSTEM_USER TABLE TEMPORARY TEST THEN THERE TIME TIMESTAMP TIMEZONE_HOUR TIMEZONE_MINUT E TO TRAILING TRANSACTION TRANSLATE TRANSLATION TRIGGER TRIM TRUE TYPE UCASE UNDER UNION UNIQUE UNKNOWN UPDATE UPPER USAGE USER USERNAME USING VALUE VALUES VARCHAR VARIABLE VARYING VIEW VIRTUAL VISIBLE WAIT WHEN WHENEVER WHERE WHILE WITH WITHOUT WORK WRITE YEAR ZONE 46 Guide ODBC et JDBC FileMaker Chapitre 6 Correspondances entre les rubriques FileMaker et les types de données ODBC Le tableau suivant présente les correspondances entre les types de données FileMaker et ODBC standard. Type de rubrique FileMaker Type de données ODBC correspondant après conversion Texte SQL_VARCHAR La longueur maximale d’une colonne de texte est de 1 million de caractères, à moins que vous fixiez une limite inférieure à l’aide de l’option Nombre maximal de caractères pour la rubrique de type texte dans FileMaker. FileMaker renvoie les chaînes vides sous la forme NULL. Nombre SQL_DOUBLE Le type de rubrique nombre de FileMaker peut contenir des valeurs positives ou négatives comprises entre 10-308 et 10+308, avec un maximum de 15 chiffres significatifs. Date SQL_DATE Heure SQL_TIME Horodatage SQL_TIMESTAMP conteneur SQL_LONGVARBINARY Calcul Précisions sur ce type de données Le type de rubrique heure de FileMaker peut contenir l’heure du jour ou un intervalle de temps. Un intervalle de temps est renvoyé sous forme d’heure du jour, à moins qu’il soit inférieur à 0 ou supérieur à 24 (auquel cas la valeur renvoyée est 0). Vous pouvez récupérer depuis une rubrique Multimédia des données binaires, des informations de référence de fichier ou des données appartenant à un type de fichier particulier. Au sein d’une instruction SELECT, utilisez la fonction CAST pour récupérer les informations de référence du fichier, de même que la fonction GetAs pour récupérer les données d’un type de fichier en particulier. Le résultat est converti dans le type de données ODBC correspondant. La longueur des chaînes est facultative dans les déclarations de table. Toutes les chaînes sont stockées et extraites au format Unicode. Remarques 1 L’instruction SELECT peut traiter jusqu’à 170 rubriques simultanément dans un fichier de base de données FileMaker ; l’instruction UPDATE peut en traiter jusqu’à 100. 1 Contrairement à FileMaker, ODBC ne prend pas en charge les rubriques multivaluées (les données de type tableau). FileMaker exporte les valeurs sous forme de fichiers délimités par des tabulations ou par des virgules et sépare chaque valeur à l’aide d’un séparateur de groupe (valeur décimale Unicode 29). Les colonnes de texte séparées par le séparateur de groupe sont concaténées. Tous les autres types de données renvoient uniquement la première valeur. 48 Guide ODBC et JDBC FileMaker Chapitre 7 Correspondances entre les rubriques FileMaker et les types de données JDBC Le pilote client JDBC emploie les correspondances suivantes pour convertir des types de données FileMaker en types de données SQL JDBC. (Pour plus d’informations sur ces types, consultez les pages Web de documentation du JDK 1.5 disponibles à l’adresse www.javasoft.com.) Type de rubrique FileMaker Type SQL JDBC correspondant après conversion Texte java.sql.Types.VARCHAR Nombre java.sql.Types.DOUBLE Date java.sql.Types.DATE Heure java.sql.Types.TIME Horodatage java.sql.Types.TIMESTAMP Multimédia java.sql.Types.BLOB Calcul Varie suivant le type de données du résultat du calcul Le pilote client JDBC convertit le type de données calcul de FileMaker en type SQL JDBC correspondant au résultat du calcul. Par exemple, le pilote client JDBC convertit un calcul FileMaker qui génère un résultat de type horodatage en type java.sql.Types.TIMESTAMP. 50 Guide ODBC et JDBC FileMaker Chapitre 8 Messages d’erreur ODBC et JDBC Cette annexe présente le format de base des messages d’erreur que vous pouvez recevoir en travaillant avec FileMaker et ODBC/JDBC. Pour obtenir une liste de codes d’erreur et d’explications, visitez le site www.datadirect.com. Pour plus d’informations sur le traitement des erreurs dans FileMaker, consultez la partie de l’Aide de FileMakerPro qui traite des fonctions Get(LastError) et Get(LastODBCError). Messages d’erreur ODBC Si vous obtenez des messages d’erreur, ils peuvent provenir de différentes sources&nbsp;: 1 le pilote ODBC ; 1 le gestionnaire de pilotes ODBC ; 1 le client SequeLink ; 1 le serveur SequeLink ; 1 la source de données ou le système de gestion de base de données. Messages d’erreur du pilote ODBC Les erreurs renvoyées par un pilote ODBC SequeLink se présentent de la façon suivante&nbsp;: [DataDirect] [ODBC SequeLink driver] message Par exemple : [DataDirect] [ODBC SequeLink driver] Invalid precision specified (précision spécifiée non valide) Si vous obtenez ce type d’erreur, vérifiez le dernier appel ODBC effectué par votre application pour repérer un éventuel problème ou prenez contact avec le fournisseur de votre application ODBC. Messages d’erreur du gestionnaire de pilotes ODBC Les erreurs renvoyées par le gestionnaire de pilotes ODBC se présentent de la façon suivante&nbsp;: [Microsoft] [Gestionnaire de pilotes ODBC] message Par exemple : [Microsoft] [Gestionnaire de pilotes ODBC] Function sequence error (Erreur de séquence de fonctions) Si vous rencontrez une erreur de ce type, vérifiez que vous disposez des fichiers de prise en charge ODBC et des pilotes adaptés. Messages d’erreur du client SequeLink Les erreurs renvoyées par le client ODBC SequeLink se présentent de la façon suivante&nbsp;: [DataDirect] [ODBC SequeLink driver] message Par exemple : [DataDirect] [Pilote ODBC SequeLink] [Client SequeLink] The specified transliteration module is not found (Module de translittération spécifié introuvable) 52 Guide ODBC et JDBC FileMaker Messages d’erreur du serveur SequeLink Les erreurs renvoyées par le serveur SequeLink se présentent de la façon suivante&nbsp;: [DataDirect] [ODBC SequeLink driver] [Serveur SequeLink] message Par exemple : [DataDirect] [ODBC SequeLink driver] [Serveur SequeLink] Only SELECT statements are allowed in this read-only connection. (Seules les instructions SELECT sont autorisées dans cette connexion en lecture seule.) Messages d’erreur de la source de données Si une erreur se produit dans la source de données, le message précise le nom de cette source de données et se présente de la façon suivante&nbsp;: [DataDirect] [ODBC SequeLink driver] [data_source] message Une source de données FileMaker, par exemple, peut renvoyer un message d’erreur comme celui-ci&nbsp;: [DataDirect] Pilote [ODBC SequeLink] [FileMaker] Invalid Username/Password (Nom d’utilisateur/mot de passe non valide) Un message d’erreur de ce type signale que vous avez effectué une opération incorrecte dans le système de base de données. Pour plus d’informations, consultez votre documentation FileMaker ou demandez conseil à l’administrateur de la base de données. Les messages suivants mentionnant des erreurs dans des colonnes différentes s’affichent parfois dans un nom de colonne incorrect. Messages d’erreur JDBC Le pilote SequeLink conçu pour JDBC signale les erreurs à l’application à l’origine de l’appel en renvoyant des exceptions SQL. Si vous obtenez des messages d’erreur, ils peuvent provenir de différentes sources&nbsp;: 1 le pilote JDBC ; 1 le serveur SequeLink ; 1 la source de données ou le système de gestion de base de données. Messages d’erreur du pilote JDBC Les erreurs renvoyées par le pilote JDBC se présentent de la façon suivante&nbsp;: [DataDirect] [JDBC SequeLink driver] message Par exemple : [DataDirect] [JDBC SequeLink driver] Timeout expired (Expiration du délai) Si vous obtenez ce type d’erreur, vérifiez le dernier appel JDBC effectué par votre application pour repérer un éventuel problème ou prenez contact avec le fournisseur de votre application JDBC. Messages d’erreur du serveur SequeLink Les erreurs renvoyées par le serveur SequeLink se présentent de la façon suivante&nbsp;: [DataDirect] [JDBC SequeLink driver] [SequeLink] message Si aucune erreur de serveur SequeLink n’existe, vous voyez : [DataDirect] [JDBC SequeLink driver] [SequeLink] Chapitre 8 | Messages d’erreur ODBC et JDBC 53 Messages d’erreur de la source de données Si une erreur se produit dans la source de données, le message précise le nom de cette source de données et se présente de la façon suivante&nbsp;: [DataDirect] [JDBC SequeLink driver] [data_source] message Une source de données FileMaker, par exemple, peut renvoyer un message d’erreur comme celui-ci&nbsp;: [DataDirect] [JDBC SequeLink driver] [FileMaker] Invalid Username/Password (Nom d’utilisateur/Mot de passe non valide) Un message d’erreur de ce type signale que vous avez effectué une opération incorrecte dans le système de base de données. Pour plus d’informations, consultez votre documentation FileMaker ou demandez conseil à l’administrateur de la base de données. 54 Guide ODBC et JDBC FileMaker Index A accès à distance 8 accès étendu, autorisations 17 Accès via l’autorisation étendue ODBC/JDBC 17 Administrateur de source de données ODBC (Windows) 18 alias avec l’instruction SELECT 28, 31 alias de colonne 28 alias de table 28, 29 ALTER TABLE, instruction SQL 35 API 7 application cliente, utilisation de FileMaker en tant que 7 assistant de requêtes Microsoft 8 autorisations d’accès étendues 17 B base de données, nombre de connexions prises en charge 8 blanc dans un nom de base de données 20, 24 C caractères de remplacement avec l’instruction SELECT 28, 31 ce mot de passe avec JDBC 23 avec ODBC 19 clés générées automatiquement 21 Comptes et privilèges 17 configuration d’une source de données FileMaker via JDBC 23 via ODBC (Mac OS) 20 via ODBC (Windows) 17 configuration requise pour l’installation 11 Configuration réseau requise 9 configuration système requise 11 conformité avec la norme SQL 27 conformité avec les normes 27 connexions, base de données 8 constantes dans les expressions SQL 37 correspondance de types de données pilote client JDBC 49 pilote client ODBC 47 CREATE INDEX, instruction SQL 35 CREATE TABLE, instruction SQL 35 cryptage SSL (Secure Socket Layer) 24 curseur persistant 22 curseurs dans JDBC 22 dans ODBC 31 D DELETE, instruction SQL 33 désactivation d’un fichier de base de données FileMaker partagé 8 DROP INDEX, instruction SQL 36 E enregistrement du pilote client JDBC 22 erreurs de syntaxe 44 espace dans un nom de base de données 20, 24 espaces finaux 38 exceptions SQL 52 expressions SQL 37 constantes 37 Fonctions 41 littéraux 37 noms de rubriques 37 notation en virgule flottante ou scientifique 38 opérateurs de caractères 38 opérateurs de dates 39 opérateurs logiques 40 opérateurs numériques 38 opérateurs relationnels 39 ordre de priorité 42 F Fichiers configuration de l’accès à 17 organisation sur un seul ordinateur 8 fichiers utiliser dans les rubriques Multimédia 32 fichiers bitmap dans les rubriques Multimédia 32 fichiers image dans les rubriques Multimédia 32 fichiers QuickTime dans les rubriques Multimédia 32 fonction B 42 fonction CAST 32, 47 fonction CHR 41 Fonction DATE 42 fonction DATEVAL 42 Fonction DAY 42 fonction DAYOFWEEK 42 fonction Get(LastError) 51 fonction Get(LastODBCError) 51 56 Guide ODBC et JDBC FileMaker fonction GetAs 32, 47 fonction INT 42 Fonction LEFT 41 fonction LEN 42 Fonction LOWER 41 fonction LTRIM 41 Fonction MAX 42 fonction MIN 42 fonction MOD 42 fonction MONTH 42 fonction NUMVAL 42 fonction POW 42 fonction RIGHT 41 Fonction ROUND 42 fonction RTRIM 41 fonction SPACE 41 fonction STRVAL 41 fonction SUBSTR 41 fonction TIME 41 fonction TRIM 41 fonction UPPER 41 fonction USERNAME 41 fonction VAL 42 fonction X 42 Fonction YEAR 42 fonctions dans les expressions SQL 41 fonctions de catalogue pour ODBC 43 fonctions de chaînes 41 fonctions de métadonnées pour JDBC 43 fonctions statistiques SQL 36 FOR UPDATE, clause SQL 31 formats des messages d’erreur 51 FROM, clause SQL 29 G GROUP BY, clause SQL 29 H HAVING, clause SQL 30 hébergement d’une source de données FileMaker 7 hôte serveur SequeLink 18 I INNER JOIN 29 INSERT, instruction SQL 33 installation pilotes clients FileMaker JDBC 13 pilotes clients FileMaker ODBC 12 installation, configuration requise 11 instructions SQL ALTER TABLE 35 CREATE INDEX 35 CREATE TABLE 35 DELETE 33 DROP INDEX 36 INSERT 33 mots-clés réservés 44 prises en charge par les pilotes clients 27 SELECT 27 UPDATE 34 J JAR, fichiers d’archive 13 Java, version 12 JDBC description 21 messages d’erreur 52 pilote client, description 21 procédure d’utilisation 7 JDBCTest 14 JDK (Java Development Kit) 22 jointure 29 L limites du nom de fichier (Mac OS) 20 littéraux dans les expressions SQL 37 M Mac OS Configuration requise pour le pilote client JDBC 12 Configuration requise pour le pilote client ODBC 11 création d’une source de données 20 installation du pilote client JDBC 13 installation du pilote client ODBC 13 ODBC Administrator 13, 20 Microsoft Access application cliente 8 mises à jour et suppressions positionnées 31 mots-clés pour les sources de données (Mac OS) 20 SQL réservé 44 mots-clés SQL réservés 44 N nom de base de données, considérations Mac OS 20 Windows 19 noms de colonne 17 | noms de rubriques dans les expressions SQL 37 noms de source de données. Voir sources de données NOT NULL (clause SQL) 35 notation en virgule flottante dans les expressions SQL 38 notation scientifique dans les expressions SQL 38 O ODBC conformité avec les normes 27 description 15 messages d’erreur 51 procédure d’utilisation 7 rubriques multivaluées 47 ODBC Administrator (Mac OS) 13, 20 opérateur ALL 39 opérateur AND 40 opérateur ANY 39 opérateur BETWEEN 39 opérateur DISTINCT 28 opérateur EXISTS 39 opérateur LIKE 39 opérateur NOT 40 opérateur OR 40 opérateurs de caractères dans les expressions SQL 38 opérateurs de dates dans les expressions SQL 39 opérateurs logiques dans les expressions SQL 40 opérateurs numériques dans les expressions SQL 38 opérateurs relationnels dans les expressions SQL 39 ORDER BY, clause SQL 30 ordre de priorité des opérateurs dans les expressions SQL 42 OUTER JOIN 29 outils RAD (Rapid Application Development) 21 P partage, configuration de ODBC/JDBC 17 pilote client JDBC classe et point d’accès principal du pilote 22 enregistrement avec le gestionnaire de pilotes JDBC 22 fonctions de métadonnées 43 installation 13 prise en charge Unicode 27 rubriques multivaluées 27 spécification de l’URL JDBC 22 types de données, correspondance 49 vérification d’accès 25 pilote client ODBC fonctions de catalogue 43 Index 57 installation (Mac OS) 13 installation (Windows) 12 nombre maximal de rubriques FileMaker accessibles simultanément 47 prise en charge Unicode 27 rubriques multivaluées 27 types de données, correspondance 47 vérification de l’accès (Windows) 19 pilotes désinstallation de l’ancien 9 installation de FileMaker JDBC 13 installation de FileMaker ODBC 12 pilotes clients FileMaker. Voir pilotes pilotes clients. Voir pilotes port spécification pour JDBC 24 spécification pour ODBC (Mac OS) 20 spécification pour ODBC (Windows) 18 port serveur SequeLink 18 présentation configuration des autorisations d’accès et partage 17 utilisation d’ODBC et de JDBC avec FileMaker 7 prise en charge de Savepoint 21 prise en charge Unicode 27 Produits FileMaker 8 propriétés de pilote pilote client JDBC 23 pilote client ODBC (MacOS) 20 pilote client ODBC (Windows) 17 R remplacement de caractères 20, 24 rubrique Multimédia FileMaker avec instruction l’INSERT 33 avec l’instruction SELECT 32 avec l’instruction UPDATE 34 correspondance de types de données JDBC 49 correspondance de types de données ODBC 47 rubriques correspondance avec JDBC 49 correspondance avec ODBC 47 rubriques multivaluées 27, 47 S SELECT, instruction SQL 27 source de données configuration pour accès via ODBC ( Mac OS) 20 configuration pour l’accès via JDBC 23 configuration pour l’accès via ODBC 58 Guide ODBC et JDBC FileMaker (Windows) 17 désactivation d’un fichier de base de données FileMaker partagé 8 une source de données pour chaque fichier de base de données FileMaker 9 utilisation de FileMaker en tant que 7 vérification de l’accès via JDBC 25 vérification de l’accès via ODBC (Windows) 19 source de données serveur 18 sources de données création (Mac OS) 20 création (Windows) 17 une par fichier 9 valeurs des mots-clés pour (Mac OS) 20 sous-requêtes 33 SPI JDBC 22 SQL, expressions 37 SQL, fonctions statistiques 36 SQL-92 27 T tables externes 27 test d’accès pilote client JDBC 25 pilote client ODBC (Windows) 19 type de données ARRAY 22 type de données booléen 22 type de données CLOB 22 type de données Conteneur limite de JDBC 22 utiliser dans CREATE TABLE 35 utiliser dans SELECT 31 type de données DATALINK 22 type de données REF 22 type de données SQL_C_BINARY 27 type de données SQL_C_WCHAR 27 types de données, correspondance pilote client JDBC 49 pilote client ODBC 47 U UNION (opérateur SQL) 30 UPDATE, instruction SQL 34 URL (Uniform Resource Locator) pour le pilote client JDBC 22 V valeur non nulle dans les colonnes 33 valeur nulle 33, 47 VALUES (clause SQL) 33 vérification d’accès pilote client JDBC 25 pilote client ODBC (Windows) 19 W WHERE, clause SQL 29 Windows Configuration requise pour le pilote client JDBC 12 Configuration requise pour le pilote client ODBC 11 création d’une source de données 17 installation du pilote client JDBC 13 installation du pilote client ODBC 12 vérification de l’accès à ODBC 19