fpXMLXSDExport/fr

From Lazarus wiki
Jump to: navigation, search

English (en) français (fr)

Vue d'ensemble

FPC

Le module fpXMLXSDExport est une partie de fpDBExport dans les modules de base de données de Free Pascal.

Ce module d'exportation fournit l'exportation vers divers formats de XML, sélectionnable par le réglage ExportSetting. Remarquez que la non exportation des index peut apparaître comme une limitation dans la plupart des formats, mais les index se seront sans doute pas modifiées de quelques façons dans le nouvel environnement/base de données.

Il y a aussi un module fpsimplexmlexport qui exporte un simple format XML.

Lazarus

Le composant est localisé dans l'onglet Data export.

DataExportTab.png

Formats d'export

Ce composant prend en charge divers formats XML.

Compatible Access

Ce format génère XML compatible Microsoft Access XP/2002-2010 (et probablement SQL Server).

Vous pouvez spécifier d'inclure ou exclure les données de définition en line XSD avec les réglages CreateXSD. Il est recommandé de la laisser à True ainsi Access peut recréer la structure de la table. Si vous avez une rtable existante compatible, vous n'aurez pas besoin du XSD.

Les définitions d'index sont exportées dans ce format.

Le format Access tel qu'émis par Access XP utilise au moins le séparateur décimal de l'ordinateur sur lequel s'exécute l'exportation. P.ex. une locale US émettra 42.42, alors qu'une locale hollandaise émettra 42,42. Si vous voulez surcharger le séparateur décimal par une valeur indépendante de la locale (ce qui est recommandée pour des exportations vers des locales différentes), veuillez forcer le séparateur décimal (p.ex. par '.').

Limitations:

  • L'import de type de donnée BLOB/binaire dans Access est problématique car Acces n'a pas de de type de données binaire réel, seulement un type de données OLE. Access stocke les métadonnées OLE et après cela l'objet binaire. Lors de l'exportation vers XML, Access enregistre le paquet entier comme de la données base64. nous ne pouvons pas répliquer cette fonctionnalité, donc nous ne faisons qu'encoder le BLOB en base64 et perdons les métadonnées OLE. Si vous le voulez, en Access, vous pouvez par programmation lire la donnée comme de la donnée BLOB et la copier vers un "vrai" champ OLE. Voyez p.ex. http://support.microsoft.com/?kbid=103257 pour des conseils sur comment enregistrer le contenu d'un BLOB exporté vers un fichier.
  • Un champ de type Date/heure hors des limites d'Access est ignoré (un NULL est inséré).
  • Les GUIDs sont exportés comme du texte car Acces n'a pas de type de champ équivalent.
  • Les valeurs numériques larges peuvent dépasser les capacités d'importation d'Access. Des correctifs sont les bienvenus.

Compatible ADONET

Ce format génère du XML compatible avec le framwork .Net (en particulier la bibliothèque d'accès aux données ADO.NET). Il devrait fonctionner des version 2 à 4 ; la version 1/1.1 n'a pas été testée.

Dans ce format, vous pouvez aussi spécifier XSD ou non XSD en utilisant le réglage CreateXSD. Ce format de sortie est clairement générique et pourrait être aussi bien utilisable pour l'import dans d'autres applications.

Limitations :

  • Les définitions d'index ne sont pas exportées dans ce format.

Compatible Excel

Ce format génère du XML compatible avec Microsoft Excel XP/2002-2010.

Ce format recrée le données comme données de classeur Excel. Il n'inclut pas les formatages ni les formules, seulement les données simples.

Le réglage CreateXSD n'a pas d'effet dans ce format - Le format XML d'Excel ne semble pas prendre en charge les métadonnées compatibles.

Limitations:

  • Les définitions d'index ne sont pas exportées dans ce format.
  • Les données binaires ne sont pas prises en charge dans le format XML d'Excel.
  • Le format de donnée booléen (true/false) n'est pas pris en charge dans le format XML d'Excel ; à la place les entiers 0/1 sont exportés.
  • Les fins de ligne dans les cellules/champs (générées par Excel en pressant Alt+Entrée) ne sont pas pris en charge donc nous devons sortir l'entité dans le XML, ce qui n'est pas possible en utilisant les bibliothèques XML actuelles de la FCL.

Le code de FPSpreadsheet pourrait être une une alternative à ce format : il offre une sortie au format natif et probablement le support du multi-ligne.

ClientDataset Delphi

Ce format génère du XML compatible avec le XML du ClientDataset de Delphi.

Ce format permet aux applications Delphi d'utiliser la méthode ClientDataset.LoadFromFile pour lire les données.

Il a été écrit en fonction du comportement de TurboDelphi (Delphi 2006) et exporte le XML codé en UTF-8.

Le réglage CreateXSD n'a pas d'effet dans ce format - les métadonnées du Clientdataset sont toujours exportées.

Limitations:

  • Les définitions d'index ne sont pas exportées dans ce format.
  • Les variants sont exportés comme de la données binaire ; des correctifs pour la conversion sont les bienvenus.
  • Apparemment, ClientDatasets ont des modes insérer de la nouvelle donnée ou mettre à jour de la donnée ; à ce jour, seul le mode d'insertion est pris en charge.

Autres réglages

Comme les formats XML utilisés au dessus définissent comment les formats date/heure, booléens etc. sont utilisés, ces réglages d'export général n'ont pas d'effet :

  • BooleanFalse
  • BooleanTrue
  • DateFormat
  • DateTimeFormat
  • DecimalSeparator (n'a d'effet que dans le mode d'export compatible Access, pas d'effet dans les autres modes)
  • CurrencyDigits
  • CurrencySymbol
  • IntegerFormat
  • TimeFormat

Lazarus et exemples

Pour un exemple, veuillez regarder le programme de test xmlxsdexporttest.lpr dans les paquets packages\fcl-db\examples\dbftool.lpr.

Dans Lazarus, vous pouvez utiliser le paquet lazdbexport (Les composants TFPDataExporter et TStandardExportFormats en particulier) pour utiliser cette méthode, ou le composant TXMLXSDExport.

Licence

Le module fpXMLXSDExport est un freeware, sous licence MIT : tout utilisation est libre, mais aucune responsabilité n'est acceptée. Il est également autorisé sous la licence utilisée pour FreePascal Free Component Library (FCL), alors choisissez.

Voir aussi