Connecter un PDF à une base de données (Acrobat)
Transcription
Connecter un PDF à une base de données (Acrobat)
Connecter un PDF à une base de données (Acrobat) (08-09-2005) - Soumis par Equipe Sos-Pdf - Dernière mise à jour : (08-09-2005) Avec Adobe Acrobat 5 ou 6 pro, on peut connecter un formulaire à une base de données Acces, Excel, SQL Server, Oracle, etc... (à l'aide d'une liaison Odbc, un standard Windows). Ce dossier expose le code JavaScript de base à mettre en oeuvre pour récupérer des informations depuis une base de données et les afficher dans un formulaire PDF. Quelques lignes de JavaScript suffisent pour connecter un formulaire PDF à une base de données. Cela n’est possible qu’avec une liaison ODBC, un standard sous Windows qui vous permet de communiquer avec une base Access, une table Excel, Oracle… Déclarer la source de données Rendez vous dans le panneau de configuration de Windows et dans les outils d’administration. Déclarer une source ODBC utilisateur en sélectionnant le type de connecteur en fonction de votre base de données (Access, oracle…). Chaque liaison est nommée. Ce nom nous servira à nous connecter à la base de données. Appelons pour ce dossier « liaisonODBC » notre liaison. Connexion à la base en JavaScript Nous allons utiliser la structure du try and catch. En cas d’échec de connexion on peut ainsi récupérer l’erreur et afficher un message en français par exemple. try { // L’objet ADBC est l’objet de base pour se connecter connect = ADBC.newConnection("liaisonODBC"); if (connect == null) throw "Impossible de se connecter"; // L’objet statement nous permettra d’exécuter du SQL statement = connect.newStatement(); if (statement == null) throw "Impossible objet statement"; } catch(e) { // On affiche l’erreur app.alert(e); } Pour les bases de données protégées, utilisez la syntaxe : connect = ADBC.newConnection("liaisonODBC", "login", "pass"); Nous sommes connectés à la base de données sauf erreur. Nous allons maintenant pouvoir manipuler les objets statement et row (ligne) pour manipuler les données. Execution d’une requête SQL La méthode statement.execute() permet d’exécuter du SQL. Pour récupérer tous les enregistrements d’une table de la base, on fait donc : statement.execute(“Select * from maTable”); Récupération des données Pour récupérer les données ligne à ligne : // Pour récupérer la première ligne ou passer à la ligne suivante statement.nextRow(); // On stocke les enregistrements dans un tableau-objet row var row = statement.getRow(); // On récupère la valeur de la colonne « id » avec row.id.value // On remplit des champs de formulaire avec les valeurs de la base this.getField("id").value = row.ID.value; http://www.sos-pdf.com - Sos-Pdf Powered by Mambo Generated: 27 June, 2007, 16:40 this.getField("firstname").value = row.FirstName.value; Mise à jour de la base On peut évidemment envoyer une requête SQL UPDATE. Voici un exemple de requête construite directement à partir des valeurs des champs d’un formulaire PDF : var updateStr = "UPDATE ClientData" +" SET FirstName='"+this.getField("firstname").value+"'," +" LastName='"+this.getField("lastname").value+"'," +" Telephone='"+this.getField("telephone").value+"'," +" Income="+this.getField("income").value +" WHERE ID="+this.getField("id").value; statement.execute(updateStr); http://www.sos-pdf.com - Sos-Pdf Powered by Mambo Generated: 27 June, 2007, 16:40