delphi4arab منتديات دلفي للعرب

نسخة كاملة : برنامج يستعمل قاعدة بيانات Paradoxو ينشئها لوحده
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم و رحمة الله تعالى و بركاته

إخوتي الكرام نستطيع أبضا انشاء برنامج بقوم بإنشاء قاعدة بيانات PARDOX

مزايا هذا البرنامج:

1-أنشاء قاعدة بيانات من نوع بارادوكس PARADOX
2-إستغلال قاعدة البيانات في برنامج دلفي
3-استعمال خصائص ملفات الحوار -ملفات الفتح و الحفظ-
4 و مزابا أخرى تكتسفونها لتوكم.

كود :
{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éer.' , 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.

في الخنام أنمتى أن تكونو قد اسنفدتم

و السلام خير حتام.
في الحقيقة توجد أكثر من طريقة لإنشاء قاعدة بيانات عبر برنامج دلفي مثل إدراج أوامر على TQuery عن طريق إدخال أوامر SQL
إعتمدت في هذا البرنامج على إنشاء TTable.
السلام عليكم

مشكور اخي haftari

في رأي الطريقة الثانية أحسن لأنها قد تستعمل مع مختلف قواعد البيانات

و هي أيضا الأساس لكل الانواع الأخرى حتى المستعملة لغرض المشاركة في شبكة مثل MySQL و Oracle ...

و أيضا تمنحنا بعض الاستقلالية لأننا عندما نعرف لغة SQL سنتحكم بقواعد البيانات و بكل شفافية

تحياتي Smile