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 :

Acc�s dynamique � diff�rent fichier database


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Novembre 2008
    Messages
    108
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par d�faut Acc�s dynamique � diff�rent fichier database
    Bonjour � tous,

    J'ai besoin d'acc�der � des fichiers dont je ne connais pas le nom (l'utilisateur entre le nom). Normalement cela ne me cause pas trop de soucis. Dans ce cas-ci, je dois utiliser le fichier point� par l'utilisateur comme source pour ma DBGrid. En d'autre termes, ma DBGrid acc�de � un fichier .PMR (qui s'ouvre tr�s bien avec acc�ss et avec la DBGrid) via un TQuery et un TDataSource. Alors, c'est donc de cr�er dynamiquement un alias?

    Je suis un peu nouveau dans les base de donn�e.. alors excuser mon ignorance!

    merci � l'avance!

    antoine

  2. #2
    Membre chevronn�

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par d�faut
    Tu dois pouvoir assigner le nom de ton fichier en runtime depuis une propri�t� de ta composante qui localise la base de donn�es. Tu utilises quelle composante pour cela?


    PS: C'est quel genre de database les fichiers "pmr" ?

  3. #3
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Novembre 2008
    Messages
    108
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par d�faut
    Bonjour Patrick,

    merci de ton int�r�t,


    Les fichiers .PMR sont des fichier database de MS Access au meme titre que les .MDB (il doit y avoir certaines diff�rences, mais je ne les connais pas et les PMR fonctionnent avec borland tout comme les MDB alors... je ne saurais quoi dire).

    Vous devez vous posez la question "Pourquoi utilisez des PMR alors?". Ce sont des fichiers qui r�sultent d'une application dont je n'ai pas le contr�le.

    Ensuite, les composantes que j'utilise sont :

    Une TDBGrid qui pointe vers une TDataSource qu'elle pointe vers un TQuery qui pointe vers une database que j'ai configur� dans le SQL Explorer (pointant vers mon fichier .PMR).

    Je suis pas certain que sa soit clair... peut-�tre que ceci aidera :


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    DBGrid1->DataSource = "DataSource1";
    DataSource1->Dataset = "Query1";
    Query1->DatabaseName = "antoine2";
    Je ne suis pas sur de comprendre ce que vous avez dit � propos des runtime...

    d�sol� pour mon ignorance.

    merci,

    antoine

  4. #4
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Novembre 2008
    Messages
    108
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108

  5. #5
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Novembre 2008
    Messages
    108
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par d�faut Suite...
    Bonjour, encore moi!

    Juste pour aider ceux qui voudrait utiliser les codes que j'ai mit en lien ci-dessus :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ShellExecute(NULL,"open","odbcconf","configsysdsn \"Microsoft Access Driver (*.mdb)\" \"DSN=dsn2;DBQ=C:\mabase.mdb;\"",0,SW_SHOWDEFAULT);
    C'est mieux de mettre :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ShellExecute(NULL,"open","odbcconf","configsysdsn \"Microsoft Access Driver (*.mdb)\" \"DSN=MonAlias;DBQ=C:\\mabase.mdb;\"",0,SW_SHOWDEFAULT);

    Et pour l'utiliser :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Query1->DatabaseName = "MonAlias";
    Query1->Active = true;
    Cependant, j'ai un probleme lorsque je veux permettre � l'utilisateur de modifier le fichier � son aise :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    AnsiString dbFichierNom = NomduFichier->Text;
    ShellExecute(NULL,"open","odbcconf","configsysdsn \"Microsoft Access Driver (*.mdb)\" \"DSN=MonAlias;DBQ=C:\\" + dbFichierNom + ".mdb;\"",0,SW_SHOWDEFAULT);
    L'erreur est une erreur qui me reviens souvent et dont je n'ai pas encore r�ussit � r�gler. :

    "Cannot convert 'AnsiString' to '...' "

    dans ce cas-ci : ... = const char *

    Pouvez-vous m'indiquer un emplacement o� chercher de l'info sur cette conversion?

    Ou tout simplement me renseigner directement?

    Merci infiniment,

    Antoine

  6. #6
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Novembre 2008
    Messages
    108
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par d�faut Autre questions
    J'ai toujours mon probl�me de nom de fichier dynamique, mais j'ai aussi un autre probl�me.

    Lorsque je cr�er dynamiquement un nouveau alias pour un nouveau fichier .mbd (ou PMR, les deux fonctionnent de la m�me fa�on), l'alias reste pr�sent m�me lorsque le programme est ferm�. Je m'explique :

    Je compile mon programme qui est constitu� d'un bouton qui a pour action :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
     
    ShellExecute(NULL,"open","odbcconf","configsysdsn \"Microsoft Access Driver (*.mdb)\" \"DSN=Selection;DBQ=C:\\mabase.mdb;\"",0,SW_SHOWDEFAULT);
    Query1->DatabaseName = "Selection";
    Query1->Active = true;
    }
    Je test mon programme tout va bien, les donn�es de mabase.mdb se retrouve dans ma DBGrid et je peux filtrer etc. Je ferme mon test.

    Je vais dans mon Database Explorer. Mon alias (MonAlias) est toujours pr�sent. Alors pour la seconde ex�cution du programme je n'ai plus besoin de la ligne de commande :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ShellExecute(NULL,"open","odbcconf","configsysdsn \"Microsoft Access Driver (*.mdb)\" \"DSN=Selection;DBQ=C:\\mabase.mdb;\"",0,SW_SHOWDEFAULT);
    pour que mon bouton fonctionne.

    Pour l'instant ce n'est pas un probl�me, mais si le logiciel garde en m�moire toutes mes alias cr��s dynamiquement, je vais finir par avoir un probl�me.

    Je me posais comme question si c'�tait seulement un ph�nom�ne qui dure sous Borland et du moment que j'effectue une compilation finale, ce ph�nom�ne ne se produiera plus?

    Enfin, je me demandais comment effacer dynamiquement un alias.

    J'imagine que �a doit �tre avec la commande ShellExecute(), mais je n'ai pas encore trouver comment.

    Merci de votre patience.

    Antoine

  7. #7
    Membre chevronn�

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par d�faut
    Citation Envoy� par antoinelac Voir le message
    L'erreur est une erreur qui me reviens souvent et dont je n'ai pas encore r�ussit � r�gler. :

    "Cannot convert 'AnsiString' to '...' "

    dans ce cas-ci : ... = const char *
    C'est parce que tu as un objet de type "AnsiString" et que la fonction attend un "const char*". Tu peux convertir avec la fonction "c_str()" de AnsiString:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    AnsiString text="Hello";
    text.c_str();

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [C#] Utiliser dynamiquement un fichier de config diff�rent ?
    Par StringBuilder dans le forum Windows Forms
    R�ponses: 2
    Dernier message: 14/04/2011, 13h19
  2. [XSL]Acc�s totalement dynamique � un fichier
    Par Wells dans le forum XSL/XSLT/XPATH
    R�ponses: 7
    Dernier message: 03/07/2008, 17h36
  3. R�ponses: 5
    Dernier message: 07/05/2004, 09h44
  4. probl�me d'acces concurentiel � un fichier
    Par Theoden dans le forum MFC
    R�ponses: 2
    Dernier message: 04/03/2004, 09h49
  5. Chemin d'acc�s d'un fichier
    Par guitaros dans le forum Langage
    R�ponses: 6
    Dernier message: 16/01/2004, 09h27

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