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 :

[dBase] tdbf débutant en bdd


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 16
    Points
    16
    Par défaut [dBase] tdbf débutant en bdd
    Salut les gens

    n'étant pas très expérimenté en delphi (j'utilise toujours les meme choses), je cherche un moyen simple d'utiliser une base de donnée pour stocker des noms, adresse, références etc, tout restera en local

    apparemment dbase et tdbf correspondent bien à ce que je cherche mais on ne trouve pas beaucoup d'infos

    à terme ça sera sous lazarus mais en bricolant j'ai réussi à faire ça qui marche et me permet d'ouvrir le fichier dbf sous open office calc:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    procedure TForm1.btnGoClick(Sender: TObject);
    begin
      try
        Dbf1.FilePathFull := ExtractFilePath(Application.ExeName)+'bdd\';
     
        Dbf1.TableLevel := 4;   //DBase IV
        //Dbf1.Exclusive := True;
        Dbf1.TableName := 'customers.dbf';
        With Dbf1.FieldDefs do
        begin
          Add('CUST_NO', ftInteger);
          Add('FIRST_NAME', ftString, 15);
          Add('LAST_NAME', ftString, 20);
        End;
        Dbf1.CreateTable;
     
        Dbf1.Open;
     
        Dbf1.Append;
        dbf1.FieldByName('CUST_NO').AsInteger := 1;
        dbf1.FieldByName('FIRST_NAME').AsString := 'Serge';
        dbf1.FieldByName('LAST_NAME').AsString := 'Herisson';
        Dbf1.Post;
     
        Dbf1.Append;
        dbf1.FieldByName('CUST_NO').AsInteger := 5;
        dbf1.FieldByName('FIRST_NAME').AsString := 'Luc';
        dbf1.FieldByName('LAST_NAME').AsString := 'Durand';
        Dbf1.Post;
     
     
        Dbf1.Close;
      finally
        Dbf1.Free;
      end;
      ShowMessage('Fini');
    end;
     
     
     
    procedure TForm1.btnAddClick(Sender: TObject);
    begin
      try
        Dbf1.FilePathFull := ExtractFilePath(Application.ExeName)+'bdd\';
        Dbf1.TableLevel := 4;   //DBase IV
        Dbf1.TableName := 'customers.dbf';
     
     
        Dbf1.Open;
     
        Dbf1.Append;
        dbf1.FieldByName('CUST_NO').AsInteger := 427;
        dbf1.FieldByName('FIRST_NAME').AsString := 'Raymond';
        dbf1.FieldByName('LAST_NAME').AsString := 'Palvico';
        Dbf1.Post;
     
        Dbf1.Append;
        dbf1.FieldByName('CUST_NO').AsInteger := 221;
        dbf1.FieldByName('FIRST_NAME').AsString := 'André';
        dbf1.FieldByName('LAST_NAME').AsString := 'Gerflor';
        Dbf1.Post;
     
     
        Dbf1.Close;
      finally
        Dbf1.Free;
      end;
      ShowMessage('Fini');
    end;
    bon après y aura des boucles et tout mais c'est propre de faire ça? je n'oublie rien ?

    merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 069
    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 069
    Points : 41 034
    Points
    41 034
    Billets dans le blog
    62
    Par défaut
    Bonjour et bienvenue

    le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      try
        .....
      finally
        Dbf1.Free;
      end;
    me défrise un peu (beaucoup) mais comme je ne sais comment est déclaré dbf1 ni à quel composant cela correspond ....
    j'aurais plutôt envisager un try except au cas où la table n'urait pu être créer

    A part ça et le fait que cela soit un peu "vieillot" ça roule
    tu pourrais peut être envisager d'autres base de données genre SQLite, mySQL, firebird ou autres surtout si par la suite tu envisages d'ajouter plus de tables.

    PS . Quelle version de Delphi ?
    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

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Salut SergioMaster,

    merci pour ta réponse et ton acceuil

    j'osai pas le dire j'utilise Delphi 7 Lite, je sais pas si il est très légal mais je m'en sert que pour des applis perso, pour tout ce qui est du boulot j'utilise Lazarus

    c'est un composant tdbf que j'ai mis sur ma fiche et nommé dbf1, tout le reste que tu ne voit pas c'est déclaré tout seul quoi

    oui je sais pas si c'est adapté de faire le dbf1.free; faut dire que partout où je l'ai vu il était créé dans le code mais je sais pas ce que je devrait mettre? on trouve prèsque rien comme source

    héhé un peu viellot c'est vrai oui mais ça me permet de voir le résultat dans open office, tu va rire parceque c'est pour combler les "lacunes" d'une informatique sous Prologue c'est encore plus vieux

    par contre j'ai cru comprendre que les champs d'une DBase IV sont limités à 10 caractères (Field length limit) ça ne va donc pas aller car je compte stocker des adresses postales en autre qui dépassent les 10...

    oui on parle beaucoup de MySQL faut que j'essaye de m'y mettre

    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 069
    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 069
    Points : 41 034
    Points
    41 034
    Billets dans le blog
    62
    Par défaut
    Re,
    héhé un peu viellot c'est vrai oui mais ça me permet de voir le résultat dans open office, tu va rire parceque c'est pour combler les "lacunes" d'une informatique sous Prologue c'est encore plus vieux
    j'en sais quelque chose (suffit de regarder mon age et mon profil) , prologue cela fait longtemps que j'en avais plus entendu parlé j'ai fait une migration (ré-écriture) de l'application dont je m'occupe de prologue à Delphi3+Interbase puis Firebird dans les années 1998

    c'est un composant tdbf que j'ai mis sur ma fiche et nommé dbf1, tout le reste que tu ne voit pas c'est déclaré tout seul quoi
    donc pas besoin de le détruire

    par contre j'ai cru comprendre que les champs d'une DBase IV sont limités à 10 caractères (Field length limit) ça ne va donc pas aller car je compte stocker des adresses postales en autre qui dépassent les 10...

    oui on parle beaucoup de MySQL faut que j'essaye de m'y mettre
    DBase je me souviens plus des limitations mais cela doit quand même être plus
    mais si tu dois changer de BDD voici ma proposition :
    je ne connais pas Delphi 7 lite mais si tu as un composant TDBF cela veut dire que tu peux installer des composants . Si c'est le cas je te conseille d'installer la bibliothèque ZEOSDBO ainsi tu pourras attaquer plusieurs SGBD ,je conseille plutôt SQLite ou Firebird à MySQL (AMHA)
    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 Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 074
    Points : 15 468
    Points
    15 468
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Citation Envoyé par Flagad'aware Voir le message
    par contre j'ai cru comprendre que les champs d'une DBase IV sont limités à 10 caractères (Field length limit) ça ne va donc pas aller car je compte stocker des adresses postales en autre qui dépassent les 10...
    Je pense qu'il s'agit de la longueur du nom, pas de la longueur des données !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    oua le vétéran

    yep je peu installer des composants, celui-là je l'ai installé

    effectivement j'ai fait un petit essais sur une adresse normale en mettant 64 (adresse et complément d'adresse) et c'est passé

    merci pour tes conseils, je pense que je vais rester sur dBase c'est quand meme beaucoup plus simple pour mon petit cerveau pis ça reste assez basique comme utilisation tant que je peut stocker assez d'infos dans un champ

    @+

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Salut,

    Citation Envoyé par Roland Chastain Voir le message
    Je pense qu'il s'agit de la longueur du nom, pas de la longueur des données !
    aaah oké

    faut dire que ça serait bizarre quand meme de ne pas pouvoir rentrer plus

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 074
    Points : 15 468
    Points
    15 468
    Billets dans le blog
    9
    Par défaut
    Si tu ne les connais pas déjà, voici deux liens qui pourraient t'être utiles :



    Bonne continuation !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 069
    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 069
    Points : 41 034
    Points
    41 034
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    ce matin j'ai même pensé que tu pouvais carrément utiliser une base OpenOffice (puisque open office calc a été cité) mais ça c'est plus compliqué
    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

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Si tu ne les connais pas déjà, voici deux liens qui pourraient t'être utiles :



    Bonne continuation !
    merci beaucoup :-)

    j'avais vu les demos (j'en ai quasiment rien tiré, j'ai réussit à n'en complier aucun sur six essayés, quand on est manche...) mais pas la doc



    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    ce matin j'ai même pensé que tu pouvais carrément utiliser une base OpenOffice (puisque open office calc a été cité) mais ça c'est plus compliqué
    oula je vais commander une moumoute si je fais ça sinon je vais finir chauve

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 069
    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 069
    Points : 41 034
    Points
    41 034
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    à priori tu as les réponses , donc n'oublies pas de cliquer sur le bouton si tu juges la question close
    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

  12. #12
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    ok vavavoum

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

Discussions similaires

  1. Débutant : POO + BDD
    Par Shankara dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 24/02/2010, 16h17
  2. [Débutant] Programme BDD tout fait. Ca existe?
    Par idamarco dans le forum Débuter
    Réponses: 3
    Dernier message: 03/10/2007, 10h04
  3. Débutant : création BDD
    Par herbert8 dans le forum Débuter
    Réponses: 1
    Dernier message: 03/01/2007, 09h37
  4. [VBA Access 2002][Débutant] Gérer BDD en VBA
    Par SamLeChiseuji dans le forum Access
    Réponses: 6
    Dernier message: 06/06/2006, 14h02
  5. [Débutant] Tester une connection sur bdd
    Par lando dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/09/2003, 14h37

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