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 !

CREATION D’UNE TABLE PARADOX PAR PROGRAMMATION


Information sur la source

Description

Cliquez pour voir la capture en taille normale
Suite à une question est posée sur le forum, j’ai fait un petit essaie pour répondre… voilà.

En bref, cet exemple permet y comme son nom indique de créer une table Paradox par programmation ; j’ai essayé d’utiliser presque tous les types des champs possibles (Alphanumérique, Numérique, Date, Graphiques et Mémo).

Avant de conclure, je désire que cette idée vous servira dans vos travaux.

Et pour conclure, je vous souhaite bonne chance et bonne programmation.
 

Source

  • {Création d'une table PARADOX par programmation}
  • unit AFirst;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, DB, DBTables, Menus, ExtCtrls, DBCtrls, StdCtrls, Mask, Grids,
  • DBGrids, Buttons, ExtDlgs;
  • type
  • TForm1 = class(TForm)
  • DBGrid: TDBGrid;
  • DBNavigator: TDBNavigator;
  • DS: TDataSource;
  • PlFiche: TPanel;
  • DBENom: TDBEdit;
  • DBEPrenom: TDBEdit;
  • DBEAge: TDBEdit;
  • LabelNom: TLabel;
  • LabelPrenom: TLabel;
  • LabelAge: TLabel;
  • SBQuitter: TSpeedButton;
  • DBEDate: TDBEdit;
  • LabelDate: TLabel;
  • DBImage: TDBImage;
  • OPD: TOpenPictureDialog;
  • LabelPhoto: TLabel;
  • Label1: TLabel;
  • DBMemo: TDBMemo;
  • procedure FormCreate(Sender: TObject);
  • procedure SBQuitterClick(Sender: TObject);
  • procedure DBImageDblClick(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • Form1: TForm1;
  • TableEtudiants: TTable;
  • implementation
  • {$R *.dfm}
  • {Programme réalisé par HAFTARI FOUAD pour toutes informations n'hésitez pas de prendre mon contacte
  • haftari.fouad.ifrance.com
  • }
  • procedure TForm1.FormCreate(Sender: TObject);
  • begin
  • // N'oublie pas de déclarer TableEtudiants dans les variables (TableEtudiants:=TTable)
  • // Tout d'abord on débute par la création de la TableEtudiants
  • TableEtudiants := TTable.Create(nil);
  • with TableEtudiants do begin
  • // Nom de la table = Etudiants.DB qui se trouve dans le même répertoire du l'éxécutable
  • TableName := 'Etudiants.db';
  • // on vérifie l'éxistance de la table TableEtudiants.DB
  • if not Exists then begin
  • // si la table n''existe pas afficher le message et continuer
  • MessageDlg('Le fichier de la base de données "Etudiants.db" n''existe pas, il va être crée.'
  • , mtInformation, [mbok], 0);
  • // désactiver TableEtudiants
  • Active := False;
  • // on doit préciser le type de la table; dans notre cas c'est une table PARADOX=ttParadox;
  • TableType := ttParadox;
  • // On doit préciser le nom de la table qu'elle sera crée
  • TableName := 'Etudiants.db';
  • // ici on commance par la création des champs
  • with FieldDefs do begin
  • // tout d'abord on doit supprimer tous les champs existants;
  • Clear;
  • // on a six champs à créer successivemet "Nom", "Prenom", "Date de naissance", "Age", "Photo", "Remarques";
  • // Notre premier champ est nommé 'Nom' est de type String=ftstring, la taille =40;
  • with AddFieldDef do begin
  • Name := 'Nom';
  • DataType := ftstring;
  • Size:=40;
  • Required := True;
  • end;
  • // Notre deuxième champ est nommé 'Prenom' est de type string=ftstring;, la taille du champ = 25;
  • with AddFieldDef do begin
  • Name := 'Prenom';
  • DataType := ftstring;
  • Size:=25;
  • Required := True;
  • end;
  • // Notre troisième champ est nommé 'Date_Naissance' est de type Date=ftDate;
  • with AddFieldDef do begin
  • Name := 'Date_Naissance';
  • DataType := ftDate;
  • Required := True;
  • end;
  • // Notre quatrième champ est nommé 'age' est de type integer=ftinteger;
  • with AddFieldDef do begin
  • Name := 'Age';
  • DataType := ftInteger;
  • Required := True;
  • end;
  • // Le Cinquième champ est nommé 'Photo' est de type Graphique=ftGraphic;
  • with AddFieldDef do begin
  • Name := 'Photo';
  • DataType := ftGraphic;
  • size:=240;
  • Required := True;
  • end;
  • // Le dernier champ est nommé 'Remarques' est de type Memo=ftMemo;
  • with AddFieldDef do begin
  • Name := 'Remarques';
  • DataType := ftMemo;
  • size:=255;
  • Required := True;
  • end;
  • end;
  • // aprés la création des champs on peut mettre des index: primaires et secondaires
  • with IndexDefs do begin
  • // On doit supprimer tous les index éxistants;
  • Clear;
  • with AddIndexDef do begin
  • // On doit préciser le type de l'index (Primiare ou secondaire) dans notre cas c'est un index primaire
  • Name := 'idxPrim';
  • Fields := 'Nom';
  • Options := [ixPrimary];
  • end;
  • end;
  • // tout est bon il ne rêste qu'a créer la table "Etudiants.DB"
  • CreateTable;
  • end;
  • // on doit préciser le DataSet Utilisé à notre DS(DataSource)
  • DS.DataSet := TableEtudiants;
  • // même on doit préciser le DataSource Utilisé à notre DBNavigator
  • DBNavigator.DataSource := DS;
  • // Ici je précise datasource, datafields aux DBEdit utilisé;
  • with DBENom do begin
  • DataSource := DS;
  • DataField := 'Nom';
  • // ReadOnly := false ou True;
  • end;
  • with DBEPrenom do begin
  • DataSource := DS;
  • DataField := 'Prenom';
  • end;
  • with DBEDate do begin
  • DataSource := DS;
  • DataField := 'Date_Naissance';
  • end;
  • with DBEAge do begin
  • DataSource := DS;
  • DataField := 'Age';
  • end;
  • with DBImage do begin
  • DataSource := DS;
  • DataField := 'Photo';
  • end;
  • with DBMemo do begin
  • DataSource := DS;
  • DataField := 'Remarques';
  • end;
  • // tout est bon il ne rêste qu'ouvire la table
  • Open;
  • end;
  • end;
  • procedure TForm1.SBQuitterClick(Sender: TObject);
  • begin
  • Application.Terminate; // quitter l'application
  • end;
  • procedure TForm1.DBImageDblClick(Sender: TObject);
  • begin
  • // Avant de charger une image dans notre DBImage on doit vérifier le statut de la table
  • // si l table est en mode lecture annuler l''opération;
  • if (TableEtudiants.State<>DsInsert) or (TableEtudiants.State<>DsEdit) then exit;
  • // pour charger une image à partir d'un OpenImageDialog on doit l'éxécuter avant pour avoir un FileName;
  • if OPD.Execute then
  • DBImage.Picture.Bitmap.LoadFromFile(OPD.FileName);
  • end;
  • end.
{Création d'une table PARADOX par programmation}
unit AFirst;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Menus, ExtCtrls, DBCtrls, StdCtrls, Mask, Grids,
  DBGrids, Buttons, ExtDlgs;

type
  TForm1 = class(TForm)
    DBGrid: TDBGrid;
    DBNavigator: TDBNavigator;
    DS: TDataSource;
    PlFiche: TPanel;
    DBENom: TDBEdit;
    DBEPrenom: TDBEdit;
    DBEAge: TDBEdit;
    LabelNom: TLabel;
    LabelPrenom: TLabel;
    LabelAge: TLabel;
    SBQuitter: TSpeedButton;
    DBEDate: TDBEdit;
    LabelDate: TLabel;
    DBImage: TDBImage;
    OPD: TOpenPictureDialog;
    LabelPhoto: TLabel;
    Label1: TLabel;
    DBMemo: TDBMemo;
    procedure FormCreate(Sender: TObject);
    procedure SBQuitterClick(Sender: TObject);
    procedure DBImageDblClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  TableEtudiants: TTable;
implementation

{$R *.dfm}

{Programme réalisé par HAFTARI FOUAD pour toutes informations n'hésitez pas de prendre mon contacte
                                  haftari.fouad.ifrance.com
}
procedure TForm1.FormCreate(Sender: TObject);
begin
// N'oublie pas de déclarer TableEtudiants dans les variables (TableEtudiants:=TTable)
// Tout d'abord on débute par la création de la TableEtudiants

    TableEtudiants := TTable.Create(nil);
    with  TableEtudiants do begin
// Nom de la table = Etudiants.DB qui se trouve dans le même répertoire du l'éxécutable

          TableName := 'Etudiants.db';
// on vérifie l'éxistance de la table TableEtudiants.DB

          if not Exists then begin
// si la table n''existe pas afficher le message et continuer

                 MessageDlg('Le fichier de la base de données "Etudiants.db" n''existe pas, il va être crée.'
                 , mtInformation, [mbok], 0);
// désactiver TableEtudiants

                 Active := False;
// on doit préciser le type de la table; dans notre cas c'est une table PARADOX=ttParadox;

                 TableType := ttParadox;
// On doit préciser le nom de la table qu'elle sera crée

                 TableName := 'Etudiants.db';
// ici on commance par la création des champs

                 with FieldDefs do begin
// tout d'abord on doit supprimer tous les champs existants;

                      Clear;
// on a six champs à créer successivemet "Nom", "Prenom", "Date de naissance", "Age", "Photo", "Remarques";

// Notre premier champ est nommé 'Nom' est de type String=ftstring, la taille =40;
                      with AddFieldDef do begin
                           Name := 'Nom';
                           DataType := ftstring;
                           Size:=40;
                           Required := True;
                      end;
// Notre deuxième champ est nommé 'Prenom' est de type string=ftstring;, la taille du champ = 25;
                      with AddFieldDef do begin
                           Name := 'Prenom';
                           DataType := ftstring;
                           Size:=25;
                           Required := True;
                      end;
// Notre troisième champ est nommé 'Date_Naissance' est de type Date=ftDate;
                      with AddFieldDef do begin
                           Name := 'Date_Naissance';
                           DataType := ftDate;
                           Required := True;
                      end;
// Notre quatrième champ est nommé 'age' est de type integer=ftinteger;
                      with AddFieldDef do begin
                           Name := 'Age';
                           DataType := ftInteger;
                           Required := True;
                      end;
// Le Cinquième champ est nommé 'Photo' est de type Graphique=ftGraphic;
                      with AddFieldDef do begin
                           Name := 'Photo';
                           DataType := ftGraphic;
                           size:=240;
                           Required := True;
                      end;
// Le dernier champ est nommé 'Remarques' est de type Memo=ftMemo;
                      with AddFieldDef do begin
                           Name := 'Remarques';
                           DataType := ftMemo;
                           size:=255;
                           Required := True;
                      end;
                end;
// aprés la création des champs on peut mettre des index: primaires et secondaires
                with IndexDefs do begin
// On doit supprimer tous les index éxistants;
                     Clear;
                     with AddIndexDef do begin
// On doit préciser le type de l'index (Primiare ou secondaire) dans notre cas c'est un index primaire
                          Name := 'idxPrim';
                          Fields := 'Nom';
                          Options := [ixPrimary];
                end;

           end;
// tout est bon il ne rêste qu'a créer la table "Etudiants.DB"
           CreateTable;
           end;
// on doit préciser le DataSet Utilisé à notre DS(DataSource)
           DS.DataSet := TableEtudiants;
// même on doit préciser le DataSource Utilisé à notre DBNavigator
           DBNavigator.DataSource := DS;
// Ici je précise datasource, datafields aux DBEdit utilisé;
           with DBENom do begin
                DataSource := DS;
                DataField := 'Nom';
           //     ReadOnly := false ou True;
           end;
           with DBEPrenom do begin
                DataSource := DS;
                DataField := 'Prenom';
           end;
           with DBEDate do begin
                DataSource := DS;
                DataField := 'Date_Naissance';
           end;
           with DBEAge do begin
                DataSource := DS;
                DataField := 'Age';
           end;
           with DBImage do begin
                DataSource := DS;
                DataField := 'Photo';
           end;
           with DBMemo do begin
                DataSource := DS;
                DataField := 'Remarques';
           end;

// tout est bon il ne rêste qu'ouvire la table
           Open;
    end;

end;

procedure TForm1.SBQuitterClick(Sender: TObject);
begin
Application.Terminate;   // quitter l'application
end;

procedure TForm1.DBImageDblClick(Sender: TObject);
begin
// Avant de charger une image dans notre DBImage on doit vérifier le statut de la table
// si l table est en mode lecture annuler l''opération;
if (TableEtudiants.State<>DsInsert) or (TableEtudiants.State<>DsEdit) then exit;
// pour charger une image à partir d'un OpenImageDialog on doit l'éxécuter avant pour avoir un FileName;
if OPD.Execute then
DBImage.Picture.Bitmap.LoadFromFile(OPD.FileName);
end;

end.

Conclusion

Toutes question, critiques ou intervention les bienvenues.
Pour toute autre information prenez mon contact

et bonne prog.

F. HAFTARI

 

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 Caribensila le 24/01/2008 18:41:25

Salut Fouad,

Si tu nous ponds une grande oeuvre chaque fois qu'on pose une question à quat'sous sur le forum, 'va falloir que CS pense à s'agrandir.
Surtout que tu ne fais jamais dans le concis ni dans la sobriété...

signaler à un administrateur
Commentaire de MAURICIO le 24/01/2008 19:01:52

Salut,

D' abord ce n' est pas la création d' une table paradox mais d' un object TTable.

J' ai la même chose sous une fonction :
maTable := CRIATE_TTABEL(); avec plusieurs paramètes ...

Une dernière chose qui est la base de la programmation:
Lorsque l' on crée un object, il faut ensuite le libérer.

A+

PS: Application.Terminate; est à éviter ...

signaler à un administrateur
Commentaire de cantador le 24/01/2008 20:00:45

@mauricio :
oui, on parle plutôt de création lorsqu'il y exécution d'un
script SQL.

c'est pas mal fait quand même..

signaler à un administrateur
Commentaire de HAFTARIFOUAD le 31/01/2008 12:41:26

Bonjour

Pas de commentaires !!! , ni critiques ni encouragements.

Bon chance pour tout le monde et bonne programmation.

signaler à un administrateur
Commentaire de matrix1 le 03/02/2008 10:27:50

La source n'intéressé pas bc de gens mais je remarque que c bien structuré ainsi que bien commenté, tous simplement c comme ça qu'on programme, t'es sur la bonne voie; bonne continuation.
may Delphi be  with you.

signaler à un administrateur
Commentaire de HAFTARIFOUAD le 03/02/2008 20:19:51

Bonjour Monsieur MATRIX1

Je te remercie pour ton message, vraiment ca me donne un grand souffle pour continuer et m'encourage pour améliorer.

signaler à un administrateur
Commentaire de wari le 05/02/2008 07:44:35

Bonjour les Pro grammateurs
bonne continuter HAFTARIFOUAD, a ce que j'ai vue ton source est bien présenté, s'ils te reproche la création d'un objet é pa d'un fichier de base de donnée tu peut l'amélioré en cherchent dans ce site, si je me rapel bien ya un source qui converti un fichier EXCEL en BDD il peut tré bien t'aidé.
moi je voudrai bien une source qui m'aide a créer suprimer ou copier des table dans un fichier ACCES j'ai pas le temps pour le fair tt seul lol
salutation

signaler à un administrateur
Commentaire de jackalunion le 25/06/2008 03:28:15 10/10

chapeau,c'est justement ce que j'avais besoin

signaler à un administrateur
Commentaire de deltacO le 26/10/2008 10:02:30

au moins vous avez donner une solution

merci a toi et bonne continuation

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

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 Changer le nom d'un champ dans une base Paradox [ par Philippe ] Est_ce quelqu'un sait comment renommer le nom d'un champ dans une table paradox ? J'ai trouvé pour créer une table dans un prog avec les champs mais j index dans une table paradox [ par titi29 ] Comment créer par programmation un index dans une table paradox? Images dans une table Paradox [ par Zitoune34 ] bonjourj'ai créé une petite bd paraodx qui contient pour l'instant une seule table afin d'enregistrer des infos sur mes divx. Le probleme c'est que je 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 Probleme Paradox [ par Rocketman ] BonjourJe développe une application en Delphi utilisant une table paradox 7.Je un petit problème, ma table ne veut pas dépasser les 126 Mo !Avez-vous visualser le champ Mémo dans une table Paradox [ par samarella ] Bonjour ,je dispose d'une table Paradox dont un champ est de type Mémo , mais je ne vois pas son contenu en ouvrant la table à parir du Module Base De reparation table paradox [ par Oamiotte ] Bonjourquelqu'un sait il comment reparer une table paradox qui donne le message suivant : " l'index n'est pas a jour"Cela suite a un plantage du PCMer MEGA URGENT réindexation table paradox [ par Mawie ] bonjour,j'ai un pb super urgent!!!!un client a le message d'erreur suivant:"La table 002 n'a pas d'index pour le champ titre, index endommagé."Quelqu' paradox [ par exyacc ] salut,je suis en trian de faire un prog qui accede a une table paradox en reseaux, une table utilisé par un autre programme. j'utilise une Tsession, T


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,374 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é.