IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

creer une table sous delphi?


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 142
    Points : 69
    Points
    69
    Par défaut creer une table sous delphi?
    Salut
    Si je desire créer une table chambre ;ou' je doit ecrire ces instruction sous delphi ,je veux dire dans quelle partie de la form?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE CHAMBRE 
    (NO_CH INTEGER)	INSERT INTO CHAMBRE VALUES (1) 
    INSERT INTO CHAMBRE VALUES (2) 
    INSERT INTO CHAMBRE VALUES (3) 
    INSERT INTO CHAMBRE VALUES (4) 
    INSERT INTO CHAMBRE VALUES (5) 
    INSERT INTO CHAMBRE VALUES (6) 
    INSERT INTO CHAMBRE VALUES (7) 
    INSERT INTO CHAMBRE VALUES (8)

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Salut;

    si tu as un DataModule je crois que c'est le meilleur emplacement sinon sans la partie initialisation de ton projet (splash screen par exemple).
    mais dans tout les cas de figure faut pas oublier le test d'existence de la table pour ne pas l'écraser ou donner la main à l'utilisateur pour en décider.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 142
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par Just-Soft Voir le message
    Salut;

    si tu as un DataModule je crois que c'est le meilleur emplacement sinon sans la partie initialisation de ton projet (splash screen par exemple).
    mais dans tout les cas de figure faut pas oublier le test d'existence de la table pour ne pas l'écraser ou donner la main à l'utilisateur pour en décider.
    pardon , je n'ai rien compris puisque je suis debutante en delphi et en programmation.
    Expliques moi c'est quoi DataModule , splash screen et le test d'existence svp.

    Merci d'anvance.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    cela ressemble fortement a un script (Firebird ?) et non à une seule instruction SQL , excepté qu'il y manque des points virgule entre chaque instructions !!!

    Citation Envoyé par Just-Soft
    mais dans tout les cas de figure faut pas oublier le test d'existence de la table pour ne pas l'écraser ou donner la main à l'utilisateur pour en décider.
    +1 si bien dit a moins d'utiliser RECREATE (s'il s'agit bien de Firebird) et de vouloir écraser table et valeur à chaque fois.

    Quand à la manière ou l'endroit pour faire ceci , c'est un autre débat tout dépend beaucoup de l'objectif . Et comme il me semble que c'est simplement un essai , je dirais que cela n'a pas beaucoup d'importance , pourquoi pas simplement dans un évènement onClick d'un bouton ?

    [Edit] Suite à la lecture du post de 8h19

    Test d'existence : Vérification que la table n'existe pas déjà
    SlashScreen : le joli écran qu'une application montre lorsqu'elle démarre , mais tu n'en est certainement pas là
    DataModule : Unité particulière (sans form) de delphi dans laquelle on mets généralement toute la partie Données (Connexion, Tables, dataset etc...)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Suite , apres une bourde

    avec un bouton sur la form et un TQuery nommé query1 voilà le code que je propose
    su l'évènement onclick du bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    procedure TForm1.Button1Click(Sender: TObject);
    var i : Word;
    begin
    if MessageDlg('Voulez-vous écraser la table', mtConfirmation, [mbYes, mbOK], 0) = mrok then 
    begin
    Query1.SQL.text:='RECREATE TABLE CHAMBRE (NO_CH INTEGER)';
    Query1.ExecSQL;
    for i:=1 to 8 do
     begin 
      Query1.SQl.text:='INSERT INTO CHAMBRE VALUES ('+Inttostr(i)+')';
      Query1.ExecSQl;
     end;
    end; 
    end;
    Attention , ce code est écrit directement et pas copier à partir de Delphi, donc non vérifié , mais l'esprit est là
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 142
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Suite , apres une bourde

    avec un bouton sur la form et un TQuery nommé query1 voilà le code que je propose
    su l'évènement onclick du bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    procedure TForm1.Button1Click(Sender: TObject);
    var i : Word;
    begin
    if MessageDlg('Voulez-vous écraser la table', mtConfirmation, [mbYes, mbOK], 0) = mrok then 
    begin
    Query1.SQL.text:='RECREATE TABLE CHAMBRE (NO_CH INTEGER)';
    Query1.ExecSQL;
    for i:=1 to 8 do
     begin 
      Query1.SQl.text:='INSERT INTO CHAMBRE VALUES ('+Inttostr(i)+')';
      Query1.ExecSQl;
     end;
    end; 
    end;
    Attention , ce code est écrit directement et pas copier à partir de Delphi, donc non vérifié , mais l'esprit est là
    Salut
    J'ai essaié ce code mais il m'a affiché ce message d'erreur:
    Utilisation incorrect du mot-clé.
    Element:recreate.
    Numero de ligne :1.

  7. #7
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    Citation Envoyé par hayat2 Voir le message
    Salut
    J'ai essaié ce code mais il m'a affiché ce message d'erreur:
    Utilisation incorrect du mot-clé.
    Element:recreate.
    Numero de ligne :1.
    Citation Envoyé par SergioMaster Voir le message
    cela ressemble fortement a un script (Firebird ?) et non à une seule instruction SQL , excepté qu'il y manque des points virgule entre chaque instructions !!!

    +1 si bien dit a moins d'utiliser RECREATE (s'il s'agit bien de Firebird) et de vouloir écraser table et valeur à chaque fois.
    maitre Sergio t'as donné un script pour firebird.
    mais jusqu'ici tu ne nous as toujours pas dit quel SGBD tu utilises et quelle est sa version.

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par evarisnea Voir le message
    maitre Sergio t'as donné un script pour firebird.
    mais jusqu'ici tu ne nous as toujours pas dit quel SGBD tu utilises et quelle est sa version.
    Tout a fait exact note tout de même que c'est valable depuis la version 1.5

    si c'est du BDE et une table Paradox , ce ne sera pas du tout la même chose
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 142
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Tout a fait exact note tout de même que c'est valable depuis la version 1.5

    si c'est du BDE et une table Paradox , ce ne sera pas du tout la même chose
    Salut
    je suis débutante en Delphi et j'ai jamais ecrire une application de base de données sous delphi.Je sais comment creéer une table paradox afficher son contenu par dbgrid et ecrire des simples requets en tsql mais j'ai jamais faire ça par programmation ( en utilisant le code source)
    Comment faire ça, c-à-d ecrire ce code en delphi7?
    ou' je vais ecrire ce code.?
    Merci d'avance

  10. #10
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Faut lire ce qu'on écrit .
    avec un bouton sur la form et un TQuery nommé query1 voilà le code que je propose
    su l'évènement onclick du bouton
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    On a donc notre réponse , enfin si on lit entre les lignes , la table est PARADOX avec donc liaison BDE ? pas de RECREATE possible
    A noter que ton post ici semblait présager l'utilisation de Firebird ou Acces et l'abandon de BDE . Fortement conseillé


    dans ce genre de situation , j'utilise ce type de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    function CreerFichier : Boolean;
    var Abandon : Integer;
        WBons : TTable;
    begin
    WBons:=TTable.Create(Self);
     try
      with WBons do
      repeat
          DatabaseName := 'Travail';
          TableName:='WABC'+FloatToStr(Int(Frac(now)*100000));
          Fic_ABC:=TableName;
          with FieldDefs do begin
            Clear;
            Add('CLIENT',ftString,4,true);
            Add('CA',ftCurrency,0,true);
            Add('PAYS',ftString,30,False);
            Add('VILLE',ftString,30,False);
          end;
          with IndexDefs do begin
            Clear;
            Add('','CLIENT',[ixPrimary,ixUnique]);
            Add('ABC_SORT','CA;CLIENT',[ixDescending]);
           end;
          try
            CreateTable;
            Result:=True;
          except
            Abandon:=MessageDlg('Erreur Création Fichier de Travail',
                                  mtConfirmation,[mbRetry,mbAbort],0);
          end;
      until Result or(Abandon=mrAbort);
      if Abandon=mrAbort then Close;
     finally
      WBons.Free;
     end;
    end;
    ici , la création d'un fichier paradox de nom WABCxxxxxxx avec la structure suivante :
    CLIENT , CA, PAYS, VILLE
    avec un index primaire sur CLIENT
    et un secondaire sur CA,CLIENT

    voici un équivalent script Firebird
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE WABCxxxxxxxx
    (
    CLIENT CHAR(4),
    CA NUMERIC(15,2),  // je me rapelle pas commen on dit en paradox
    PAYS VARCHAR(30),
    VILLE VARCHAR(30),
    CONSTRAINT CLE1_CLIENT PRIMARY KEY (CLIENT)
    );
     
    CREATE INDEX ABC_SORT ON TABLE WABCxxxxxxx(CA,CLIENT);
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible de creer une table sous sql server 2005
    Par Hicham1982 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/04/2010, 16h59
  2. mise a jour d'une table paradox avec une autre table sous delphi
    Par bobo2005 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/01/2007, 21h07
  3. Creer une table sous ACCESS a partir de MSSQL
    Par dehorter olivier dans le forum Bases de données
    Réponses: 6
    Dernier message: 21/11/2006, 11h56
  4. Visualisation du contenu d'une table sous delphi 7
    Par Saddek dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/07/2006, 19h10
  5. Requete insertion dans une table sous delphi?
    Par EssaiEncore dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/01/2006, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo