Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRÉATION D'UNE TABLE XML PAR PROGRAMMATION.


Description

Cliquez pour voir la capture en taille normale
Bonne journée à tous

voila un petit exemple qui montre; comment créer une table xml.

en réalité le présent programme est la suite du programme que j'ai déposé tout à l'heure
"Gestionnaire de contacts".

Grâce à ce modeste travail comme vous le voyer, vous aller apprendre:

1- Comment créer une table xml par programmation.
2- Comment exploiter une table xml.
3- Comment créer un un composant TClientDataSource.
4- Comment exlpoiter une table existante.
5- Comment enregister la table à l'aide d'une boitte de dialigue.
6- et d'autres que vous aller découvrire vous même.

Avant de terminer, je souhaite que mon travail vous fournira beaucoup d'idées.

A la fin je vous souhaite bonne chance et plein de succès.
 

Source

  • unit AFirst;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, Menus, ExtCtrls, DBCtrls, Grids, DBGrids,DB,DBClient;
  • type
  • Txmltable = class(TForm)
  • MainMenu: TMainMenu;
  • Fichier: TMenuItem;
  • Crerlatable: TMenuItem;
  • N1: TMenuItem;
  • Quitter: TMenuItem;
  • Sauvegarder: TMenuItem;
  • Ouvrire: TMenuItem;
  • SaveDialog: TSaveDialog;
  • Panel1: TPanel;
  • DBGrid: TDBGrid;
  • Panel2: TPanel;
  • DBNavigator: TDBNavigator;
  • OpenDialog: TOpenDialog;
  • procedure CrerlatableClick(Sender: TObject);
  • procedure SauvegarderClick(Sender: TObject);
  • procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  • procedure QuitterClick(Sender: TObject);
  • procedure OuvrireClick(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • xmltable: Txmltable;
  • CDSet:TClientDataSet;
  • implementation
  • {$R *.dfm}
  • uses DataModule;
  • procedure Txmltable.CrerlatableClick(Sender: TObject);
  • begin
  • // c bien de vérifier l'existance d'un composant avant de créer la table
  • // Créer un TClientDataSet
  • CDSet:= TClientDataSet.Create(nil); // n'oubliez pas d'ajouter DBClient aux uses
  • // avec CDSet faire
  • With CDSet.FieldDefs do
  • begin // bedut
  • Clear; // Effacer tous les champs
  • Add('Reference',ftAutoInc,0);// n'oublie pas d'ajouter DB aux uses
  • Add('Nom',ftString,40); // ajouter le champs nom de type string et de taille 40
  • Add('Prenom',ftString,40);
  • Add('Adresse',ftString,40);
  • Add('Ville',ftString,20);
  • Add('Paye',ftString,30);
  • Add('Tel_Portable',ftString,40);
  • Add('Tel_Bureau',ftString,40);
  • Add('Groupe',ftString,20);
  • Add('Notes',ftMemo,255); // Ajouter Notes de type Memo et de taille 255
  • Add('Photo',ftGraphic,0); // Ajouter Photo de type graphique
  • end; // fin
  • CDSet.CreateDataSet;// créer le CDSet
  • //CDSet.Free; // Libérer CDSet
  • Sauvegarder.Enabled:=true; // activer l'item sauvegarder
  • ShowMessage('La table a été crée avec succès');
  • end;
  • procedure Txmltable.SauvegarderClick(Sender: TObject);
  • begin
  • SaveDialog.FileName:='BaseRepTel.xml'; // le nom du fichier du SaveDialog
  • if SaveDialog.Execute then // Si SaveDialog est exécuté
  • CDSet.SaveToFile(SaveDialog.FileName); // enregistrer notre table
  • CDSet.Free; // Libérer CDSet
  • Sauvegarder.Enabled:=false; // Désactiver l'item Sauvegarder
  • end;
  • procedure Txmltable.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  • begin
  • CanClose:=False; // empécher la fermeture de l'application
  • // Afficher un message de confirmation
  • if MessageDlg('Etes vous sûre de vouloir quitter?', mtConfirmation, [mbYes, mbNo], 0)
  • // si oui est choisi
  • = mrYes then
  • // Terminer le programme
  • Application.Terminate;
  • end;
  • procedure Txmltable.QuitterClick(Sender: TObject);
  • begin
  • if MessageDlg('Etes vous sûre de vouloir quitter?', mtConfirmation, [mbYes, mbNo], 0)
  • // si non est choisi annuler
  • = mrNo then Exit;
  • // Terminer le programme
  • Application.Terminate;
  • end;
  • procedure Txmltable.OuvrireClick(Sender: TObject);
  • begin
  • if OpenDialog.Execute then// Si OpenDialog est exécuté
  • begin
  • Data.CDSet.Active:=false;// Désactiver CDSet
  • Data.CDSet.LoadFromFile(OpenDialog.FileName); // charger le fichier séléction
  • Data.CDSet.Active:=true;// Activer CDSet
  • end;
  • end;
  • end.
  • _____________________________________________
  • unit DataModule;
  • interface
  • uses
  • SysUtils, Classes, DB, DBClient;
  • type
  • TData = class(TDataModule)
  • DS: TDataSource;
  • CDSet: TClientDataSet;
  • procedure DataModuleCreate(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • Data: TData;
  • implementation
  • {$R *.dfm}
  • procedure TData.DataModuleCreate(Sender: TObject);
  • begin
  • if FileExists('BaseRepTel.xml') then
  • begin
  • CDSet.LoadFromFile('BaseRepTel.xml');
  • CDSet.Open;
  • end else
  • begin
  • With CDSet.FieldDefs do
  • begin
  • Clear;
  • Add('Reference',ftAutoInc,0);
  • Add('Nom',ftString,40);
  • Add('Prenom',ftString,40);
  • Add('Adresse',ftString,40);
  • Add('Ville',ftString,20);
  • Add('Paye',ftString,30);
  • Add('Tel_Portable',ftString,40);
  • Add('Tel_Bureau',ftString,40);
  • Add('Groupe',ftString,20);
  • Add('Notes',ftMemo,0);
  • Add('Photo',ftGraphic,0);
  • end;
  • CDSet.CreateDataSet;
  • CDSet.SaveToFile('BaseRepTel.xml');
  • end;
  • end;
  • end.
unit AFirst;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, DBCtrls, Grids, DBGrids,DB,DBClient;

type
  Txmltable = class(TForm)
    MainMenu: TMainMenu;
    Fichier: TMenuItem;
    Crerlatable: TMenuItem;
    N1: TMenuItem;
    Quitter: TMenuItem;
    Sauvegarder: TMenuItem;
    Ouvrire: TMenuItem;
    SaveDialog: TSaveDialog;
    Panel1: TPanel;
    DBGrid: TDBGrid;
    Panel2: TPanel;
    DBNavigator: TDBNavigator;
    OpenDialog: TOpenDialog;
    procedure CrerlatableClick(Sender: TObject);
    procedure SauvegarderClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure QuitterClick(Sender: TObject);
    procedure OuvrireClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  xmltable: Txmltable;
  CDSet:TClientDataSet;
implementation

{$R *.dfm}
uses   DataModule;

procedure Txmltable.CrerlatableClick(Sender: TObject);
begin
// c bien de vérifier l'existance d'un composant avant de créer la table

// Créer un TClientDataSet
CDSet:= TClientDataSet.Create(nil); // n'oubliez pas d'ajouter DBClient aux uses
// avec CDSet faire
With CDSet.FieldDefs do
begin // bedut
        Clear;                       // Effacer tous les champs
        Add('Reference',ftAutoInc,0);// n'oublie pas d'ajouter DB aux uses
        Add('Nom',ftString,40);      // ajouter le champs nom de type string et de taille 40
        Add('Prenom',ftString,40);
        Add('Adresse',ftString,40);
        Add('Ville',ftString,20);
        Add('Paye',ftString,30);
        Add('Tel_Portable',ftString,40);
        Add('Tel_Bureau',ftString,40);
        Add('Groupe',ftString,20);
        Add('Notes',ftMemo,255);     // Ajouter Notes de type Memo et de taille 255
        Add('Photo',ftGraphic,0);    // Ajouter Photo de type graphique
end; // fin
CDSet.CreateDataSet;// créer le CDSet
//CDSet.Free;         // Libérer CDSet
Sauvegarder.Enabled:=true; // activer l'item sauvegarder
ShowMessage('La table a été crée avec succès');
end;

procedure Txmltable.SauvegarderClick(Sender: TObject);
begin
SaveDialog.FileName:='BaseRepTel.xml';        // le nom du fichier du SaveDialog
if SaveDialog.Execute then                    // Si SaveDialog est exécuté
CDSet.SaveToFile(SaveDialog.FileName);        // enregistrer notre table
CDSet.Free;                                   // Libérer CDSet
Sauvegarder.Enabled:=false;                   // Désactiver l'item Sauvegarder
end;

procedure Txmltable.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=False; // empécher la fermeture de l'application
// Afficher un message de confirmation
if MessageDlg('Etes vous sûre de vouloir quitter?', mtConfirmation, [mbYes, mbNo], 0)
// si oui est choisi
= mrYes then
// Terminer le programme
Application.Terminate;
end;

procedure Txmltable.QuitterClick(Sender: TObject);
begin
if MessageDlg('Etes vous sûre de vouloir quitter?', mtConfirmation, [mbYes, mbNo], 0)
// si non est choisi annuler
= mrNo then Exit;
// Terminer le programme
Application.Terminate;
end;

procedure Txmltable.OuvrireClick(Sender: TObject);
begin
if OpenDialog.Execute then// Si OpenDialog est exécuté
begin
Data.CDSet.Active:=false;// Désactiver CDSet
Data.CDSet.LoadFromFile(OpenDialog.FileName); // charger le fichier séléction
Data.CDSet.Active:=true;// Activer CDSet
end;
end;

end.
_____________________________________________
unit DataModule;

interface

uses
  SysUtils, Classes, DB, DBClient;

type
  TData = class(TDataModule)
    DS: TDataSource;
    CDSet: TClientDataSet;
    procedure DataModuleCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Data: TData;

implementation

{$R *.dfm}

procedure TData.DataModuleCreate(Sender: TObject);
begin

if FileExists('BaseRepTel.xml') then
begin
CDSet.LoadFromFile('BaseRepTel.xml');
CDSet.Open;
end else
begin
With CDSet.FieldDefs do
begin
        Clear;
        Add('Reference',ftAutoInc,0);
        Add('Nom',ftString,40);
        Add('Prenom',ftString,40);
        Add('Adresse',ftString,40);
        Add('Ville',ftString,20);
        Add('Paye',ftString,30);
        Add('Tel_Portable',ftString,40);
        Add('Tel_Bureau',ftString,40);
        Add('Groupe',ftString,20);
        Add('Notes',ftMemo,0);
        Add('Photo',ftGraphic,0);
end;
CDSet.CreateDataSet;
CDSet.SaveToFile('BaseRepTel.xml');
end;
end;

end.

Conclusion

Toutes critiques, contributions, commentaires, dans le sens d'améliorer les bienvenues.

bonne programmation a tous.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de yvessimon le 19/03/2008 09:41:42

Bonjour,

Quand je click sur le ficier BaseRepTel
j'ai l'arborescence xml mais pas un tableau ?

Salutations

signaler à un administrateur
Commentaire de HAFTARIFOUAD le 19/03/2008 12:24:21

Salut Mr: yvessimon
essaiez de consulter ce lien:

http://www.tetraedre.com/advanced/xml.php

Aprés vous aller découvrire pour quoi vous avez trouvé une arboredcence et non pas un tableu

bon courage.

signaler à un administrateur
Commentaire de yvessimon le 19/03/2008 13:43:13


Efectivement c'est plus clair

Merci
Saluttaions

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Creation de table avec DAO [ par kristof708 ] bonjourComment fait-on pour creer dynamiquement une base de donnée avec DAOsachant que ma base de donnée doit etre de format dbase(Dbase III+ ou Dbas creation d'une table par l'application [ par koaiz ] Salut le mecest il possible que mon application cree sa propre table de base de donnesj'explique par cette exemple :J'ai un magasin qui a bien sur des créer par programmation un index dans une table paradox [ par juan ] bjour tous, J'ai une TTable obtenue par copie (méthode batchmove) d'une autre table, et donc sans aucun index défini. Est il possible de définir cet i convertir une table Interbase en un fichier XML [ par demande001 ] Bonjour;Comment je peut convertir une table Interbase en un fichier XML sous Delphi ?Merci d'avance... TClientDataSet et rajout de colonnes [ par mike255 ] Bonjour, J'utilise un TClientDataSet avec un fichier XML pour sauvegarder les paramètres de mon programme. La table que j'utilise s'appele contacts.x QUERY CREATION TABLE [ par yvessimon ] Bonjour,Avec TTable il est possible de crée une base de données "mabase.db"avec TQuery il est possible d'ouvrir cette basePouvez-vous me confirmer s'i Probleme avec TClientDataSet, je sais pas quoi faire! [ par othland ] Bonjour tous le monde,je sais que c'est une question debile d'habitude je travaille avec un ADOConnection, ADOQuery et DataSource plus un DBGrid, et j Recherche infos sur la creation dans une table de champ typés ou d'array [ par ericmaudouit ] Bonjour à tout le monde,Je programme BDE et lors de la creation d'une table PARADOX, j'ai besoin de creer un champ array[0..13] et un champ du type su Creation table DBF par requet sql [ par deltacO ] Salut a touscomment creat une table DBF par requete SQLmerci Appliquer les requêtes SQL sur une table xml. [ par HAFTARIFOUAD ] Bonjour    Je développe une application de base de données à l'aide d'un TClientDataSet et un TDataSourceJ'aimerai bien appliquer un filtre sur plu


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.