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 :

[D7][DBase 4] Qu'est-ce donc que la propriété Table1.DataBaseName ?


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 181
    Par défaut [D7][DBase 4] Qu'est-ce donc que la propriété Table1.DataBaseName ?
    Bonjour,
    J'ai pour habitude (qui remonte à mes développements sous DOS/Clipper 5.0) de créer mes bases 'à la main'... et je veux continuer ainsi !
    L'aide de Delphi affirmant quelque part "DatabaseName peut contenir un chemin d'accès complet pour se connecter à une base de données Paradox ou dBASE", j'en ai conclu un peu rapidement qu'il n'était pas utile de renseigner DatabaseName quand le projet et la base sont dans le même dossier. Mon code a donc cette allure:
    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
    with Table1 do
       begin
          Active := False;
          TableType := ttDBase;
          DatabaseName := ''; 
          TableName := MaTable.dbf'; 
          if not Table1.Exists then 
            begin
              { Décrire ensuite les champs de la table }
              with FieldDefs do
                 begin
                    Clear;
                    with AddFieldDef do
                       begin
                          Name := 'Nom';
                          DataType := ftString;
                          Size := 25;
                        end;
                       // etc…
    Ceci ne m'a pas donné de souci jusqu'à ce jour où je prends connaissance de Rave Report à travers un tutoriel où je lis :
    initialisez les composants pour accéder à CUSTOMER.DB
    dans la Tools Palette, sélectionnez BDE, puis tTable, et posez-la sur la Forme
    dans l'Inspecteur d'Objet initialisez les propriétés suivantes:
    DataBase à DBDEMOS (DataBase sans doute pour DataBaseName)
    TableName à CUSTOMER.DB
    Active à True
    etc...

    En voulant refaire le cheminement avec une de mes bases, je me suis trouvé en échec (pas d'affichage des champs à choisir pour le Report) sans doute parce que je laisse à blanc DataBaseName : quel est donc le rôle précis de cette propriété ?
    D'avance merci.
    Alain

  2. #2
    Membre chevronné Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Par défaut
    Pour une base de données, généralement, on spécifie l'AliasName et le DataBaseName identiquement (on peut mettre des noms différents). Exp DataBaseName=MS ACCES DATABASE. En double-cliquant sur la base de données (composant de la forme), on peut en afficher les propriétés : On trouve entre autres Name : MS ACCES DATABASE et parameters overrides : DATABASE NAME = 'le chemin du .mdb'
    Pour une Table, je pense que la table doit avoir la propriété DataBaseName = 'nom de la base'
    Exemple :
    Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    db := tdatabase.Create(nil);
      db.DatabaseName := 'Bidon';
      db.LoginPrompt := false;
      db.GetTableNames(l,false);
      t := ttable.Create(nil);
      t.DatabaseName := 'Bidon';

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 181
    Par défaut
    Merci pour ta réponse rapide AL1986, je vais me pencher dessus.
    Bonne fin de dimanche.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 181
    Par défaut
    En fait, il existe deux propriétés qui me semblent proches, mais c'est la confusion totale dans ma p'tite cervelle :

    Table1.Database et Table1.DatabaseName

    Tout cela est bien brumeux pour moi

  5. #5
    Membre chevronné Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Par défaut
    Citation Envoyé par alainvh Voir le message
    En fait, il existe deux propriétés qui me semblent proches, mais c'est la confusion totale dans ma p'tite cervelle :

    Table1.Database et Table1.DatabaseName

    Tout cela est bien brumeux pour moi
    Table1.DataBase est un TDataBase alors que Table1.DataBaseName est une string
    DataBase est une propriété Read-Only qui ne peut donc pas être modifiée, on ne peut lui affecter de valeur. Le seul lien restant avec la base de données est la propriété DataBaseName.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 181
    Par défaut
    Merci pour ta patience,AL 1986, j'en abuse
    L'aide Delphi fournit cet exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Table1.Active := False;
    try
    { Essaie d'abord d'utiliser un alias }
      Table1.DatabaseName := 'Delphi_Demos';
      Table1.Active := True;
    except
      on EDatabaseError do
        { Si cela échoue, essaie d'utiliser le lecteur et le répertoire }
        Table1.DatabaseName := 'c:\delphi\demos\database';
        Table1.Active := True;
    end;
    Est-ce à dire que DatabaseName ne sert en fait qu'à retrouver la base sur le disque dur ???
    Si Database est à ReadOnly, à quoi donc sert cette propriété ?

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

Discussions similaires

  1. [EDI] Quel est l'éditeur que vous recommandez pour PHP ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 400
    Dernier message: 10/04/2018, 20h08
  2. « Mais qu'est-ce donc que HTML5 ? »
    Par Hinault Romaric dans le forum Balisage (X)HTML et validation W3C
    Réponses: 102
    Dernier message: 06/02/2014, 11h30
  3. Qu'est ce donc que le String ^ ?
    Par Guiiil dans le forum Langage
    Réponses: 2
    Dernier message: 16/06/2009, 11h00
  4. Qu'est-ce donc que Extlib Enum ?
    Par james-mi dans le forum Caml
    Réponses: 10
    Dernier message: 12/05/2008, 17h57
  5. DBExpress est plus lent que BDE?
    Par palassou dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/07/2004, 08h39

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