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

C++Builder Discussion :

DataSet et DataSource + loginprompt


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut DataSet et DataSource + loginprompt
    bonjour à tous !

    voila j'utilise un DBgrid pour afficher des infos d'une table, donc j'ai paramétré un Datasource, avec son dataset (qui correspond soit à un TQuery soit à un TTable).

    Sauf que lorsque je veux lancer l'affichage des infos de la table, j'ai un loginprompt qui se lance, et qui me demande donc mon login et mdp pour me connecter à ma base.

    DAns l'explorateur d'évènement, on ne peut pas modifier de valeur de LoginPrompt sur un DataSource.

    Pouvez vous m'éclaircir la chose svp?

    merci par avance

  2. #2
    Membre expérimenté Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Par défaut
    utilise le composant : Database1

    dans l'inspecteur d'objet met a False LoginPrompt

    Si tu utilises l'odbc Configure aussi AliasName c tout.

    DataBaseName c'est pour renommer L'alliasse pour lier ton composant Table

    comme si ton aliasse Odbc etait secret !?

    un exemple ici : www.createsoft.be/opensource/ODBC-builder.rar

    @+

  3. #3
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut


    la question a déjà été posée...

    merci d'avance

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut
    j'ai vu en effet...Sauf qu'aucuns sujet ne réponds à mon sujet oO

    En résumé, j'ai un objet TDAtamodule qui comprends : TDAtabase,TTAble et TQuery.

    Ce TDAtamodule est utilisé par une classe qui gère tous les envois de requêtes SQL sur ma bdd.

    J'ai donc créé ma Form avec le DBGrid en fonction de ce TDAtamodule, donc sur cette form, j'ai fait mon TDataSource.

    La propriétés Dataset de mon Datasource a 2 possibilités: * DataModule->Table1
    ou DataModule->TQuery.

    J'en déduis donc que ma form et mon dbgrid sont liés à mon TDAtaModule non?

    Sur le composant Database, le prompt est a false, et les informations de connexion sont gérés par une classe qui gère un fichier ini (qui comprends le login et mdp).

    Si le prompt est à false, je ne devrais pas l'avoir pour envoyer une requete sql, afficher le dbgrid n'est ce pas?

    Dans le fonctionneemnt général de mon soft, sur des requetes sql simple le prompt ne s'affiche pas, sauf pour le cas de la dbgrid.

    c'est la que je trouve cela surprenant.

    J'espere que vous m'avez compris ^^

    Freud

  5. #5
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonsoir,

    Quelle est le type de database, pour commencer ?

    Ensuite, même si je n'ai jamais utilisé un TDatabase dans ce contexte (plutôt des objets TADOmachinchose), je me permets de penser que:
    Si le prompt est à false, je ne devrais pas l'avoir pour envoyer une requete sql, afficher le dbgrid n'est ce pas?
    n'est pas juste.

    Tel que je le comprends si LoginPrompt est a false, on dirait que tu sous-entends que la connexion se fera même si il n'y a aucun paramètres de fournis pour une DB qui attends le couple "User ID / mdp".
    Ce qui est aussi surprenant c'est qu'il semblerait que les cas de connexion avec MDP soient déjà traités (avec "un classe qui gère un fichier ini" comme tu sembles l'indiquer), donc qu'est ce qui fait que pour ce cas cela soit différent ?
    Si tout est parametré de la même manière, et que les évènements sont traités de facon identiques, ...?

    En fonction de la base de données utilisée, pour ne pas essayer avec des composants de type TADOTable et TADOQuery, pour lesquels la propriété 'ConnectionString' contient (entre autres) le login et le mdp ?

    @+

  6. #6
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    +1..
    le principe du database, datasource c'est justement d'avoir un même composant pr se connecter...qui lui servira de source aux composants orientés données.

    Le dbgrid ne fait qu'afficher le resultat de la requete...n'empeche que la requete doit être exécutée..et donc une connexion établie.

    tu peux mettre à false si tu gères ta connexion en dynamique par exemple, en fournissant log et mdp au préalable

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut
    Désolé du retard pour ma réponse

    En fait, j'ai mon TDataModule qui comprends un TDatabase et un TQuery.
    Lors du "DataModuleCreate", dans l'explorateur d'évênements, j'ai créé un bout de code pour qu'au moment de l'ouverture de connexion du Database à la bdd, je fournis (via un fichier .ini) les login et mdp de la base de données.

    De ce fait, mon LoginPrompt était à false, vous me suivez jusque la?

    Depuis que j'ai entrepris de vouloir utiliser un DBGrid, j'ai un login prompt qui se lance non pas à l'ouverture de session à la bdd, mais au moment ou mon TQuery est appelé avec une méthode de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void GestionQuery::ExecRequete()
    {
            DataModule1->Query->Open();
    }
    J'ai un Login Prompt qui s'ouvre et qui me demande login et mdp.
    Si je lui met aucunes valeur, ca se connecte quand meme (alors que ma bdd refuse toute connexion anonyme ou sans login...)

    Donc si ca se connecte sans login, j'en déduis que les informations fournies via le fichier .ini sont en mémoires.

    Donc aux dernières nouvelles, ca serait mon TQuery qui déclencherait le prompt.
    Mais comment le fait il? je ne sais pas, surtout qu'avant ca n'apparaissait pas.

    Donc j'ai du modifier quelque chose ou faire une mauvaise manip quelques part...

    Merci par avance

  8. #8
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Par défaut
    Bon eh bien j'ai trouvé tout seul mon erreur lol

    la voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Database->AliasName = ObjGestionFichierINI->GetFichier("Database", "AliasName");                     // application d'un alias à la bdd
            Database->DatabaseName = ObjGestionFichierINI->GetFichier("Database", "DataBaseName");               // application d'un nom de bdd
            Database->Params->Clear();
     
            Query->DatabaseName = ObjGestionFichierINI->GetFichier("Database", "DataBaseName");
    Le composant Query n'avait aucun moyen de savoir sur quelle bdd il devait intéragir, il demandait donc systématiquement un login.

    Apres les lui avoir fourni avec le GetFichier, cela fonctionne parfaitement !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/06/2009, 11h20
  2. Réponses: 0
    Dernier message: 01/06/2009, 13h02
  3. Différence entre DataSet et DataSource
    Par rvzip64 dans le forum Débuter
    Réponses: 1
    Dernier message: 17/01/2009, 23h18
  4. [2.2.2] Export de DataSet / DataSource
    Par imhotep_zr7s dans le forum BIRT
    Réponses: 11
    Dernier message: 31/07/2008, 14h24
  5. [VB.net 2005] Assigner un dataset au datasource d'un contrôle
    Par WriteLN dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/10/2007, 20h02

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