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

MFC Discussion :

[Win32]Service et base de donnees


Sujet :

MFC

  1. #21
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Je suis sous Visual C++ 6 et apparemment, il n'y a pas de "CDataConnection". (je liste egalement les objets disponibles atl en faisant ATL:: et pas de CDataConnection...)
    Effectivement le CDataConnection est absent dans VC++ 6.0
    Si non je t'aurais proposer le code suivant si tu pouvais obtenir la chaine de connection de la base de données Oracle en réseau au lier d'énumerer chaque champs ou propriété de cette chaîne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    HRESULT Open(LPCOLESTR szInitString)
    {
         HRESULT hr = E_FAIL;
         hr = m_source.OpenFromInitializationString(szInitString);
         if (hr == S_OK)
         {
    	hr = m_session.Open(m_source);
         }
         return hr;
    }

  2. #22
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Ecoute, tu peux utiliser un fichier de liaison de données *.udl où tu définis tous les paramètres de connection à Oracle en réseau ensuite tu ouvres ta connection à ta base à partir de ce fichier.
    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
     
    // Open the datasource specified by the passed filename, typically a .UDL file
    	HRESULT CDataSource::OpenFromFileName(LPCOLESTR szFileName) throw()
    	{
    		CComPtr<IDataInitialize> spDataInit;
    		CComHeapPtr<OLECHAR>     spszInitString;
     
    		HRESULT hr = CoCreateInstance(__uuidof(MSDAINITIALIZE), NULL, CLSCTX_INPROC_SERVER,
    			__uuidof(IDataInitialize), (void**)&spDataInit);
    		if (FAILED(hr))
    			return hr;
     
    		hr = spDataInit->LoadStringFromStorage(szFileName, &spszInitString);
    		if (FAILED(hr))
    			return hr;
     
    		return OpenFromInitializationString(spszInitString);
    	}

  3. #23
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut
    >farscape :
    J'ai essaye ce que tu proposes, mais sans succes (toujours la meme erreur)... Apres, j'ai simplement essaye d'acceder a un fichier public situe sur un disque dur reseau : impossible de m'y connecter (j'obtiens l'erreur suivante "G:\Users\a\axxxxx\test.txt contains an invalid path" alors que ce fichier et le path sont corrects (G:\Users\a\axxxxx\test.txt copie dans l'explorateur windows me renvoie bien au fichier test.txt)) !

    je commence a croire qu'il n'est pas possible a un service d'utiliser des ressources sur un reseau ?!!

    >gabrielly :
    merci pour l'idee ! ta methode a l'air interessante et m'evitera de coder en dur les parametres de connexion a la base de donnees

    Je continue a chercher une solution...

  4. #24
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut
    Je reviens avec du nouveau : un service a la possibilite d'utiliser des ressources situees sur un reseau. En voulant acceder a un fichier sur le reseau, j'ai commis l'erreur d'utiliser le mauvais path : au lieu de "G:\Users\a\axxxxx\test.txt" (qui est le path que voit l'explorateur windows) il fallait mettre le path qui utilise le nom de domaine : "\\nom_de_domaine.ch\Users\a\axxxxx\test.txt"...
    Donc, une erreur de moins !

    Apres, j'ai jete un coup d'oeil sur les variables d'environnement concernant les chemins et qu'utilise le client oracle, et la aussi, meme probleme :
    j'ai remplace les "G:\Oracle\OraInst\etc..." par "\\nom_de_domaine.ch\Oracle\OraInst\etc..." en me disant que ca va fonctionner !!!

    Mais contrairement au fichier, j'obtiens encore et toujours la meme erreur !!

    En testant mon programme en mode debuget en visualisant la trace, je vois que des fichiers sont charges depuis le reseau en utilisant "G:\Oracle\..." et d'autres "\\nom_de_domaine.ch\Oracle\...". Je suppose qu'il y a encore une autre manipulation a effectuer pour uniformiser tous les paths avec "\\nom_de_domaine.ch\Oracle\..." mais j'ignore laquelle !
    Des idees ??

  5. #25
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    c'est sur que si tu utilisais des lettres reseaux dans le service ça ne m'étonne pas que ça fonctionnait pas !
    il faudra bien remplacer les chemins par l'equivalent UNC .
    attention au doublement des \\:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char asz[]="\\\\nom_de_domaine.ch\\Users\\a\\axxxxx\\test.txt";

Discussions similaires

  1. Web services et Bases de donnees
    Par BARBIESS dans le forum NetBeans
    Réponses: 1
    Dernier message: 15/11/2010, 21h35
  2. service web et base de donnee
    Par Invité dans le forum Services Web
    Réponses: 1
    Dernier message: 22/09/2009, 16h54
  3. service web et base de donnee
    Par inessa dans le forum Services Web
    Réponses: 1
    Dernier message: 24/04/2007, 14h39
  4. taille maximale d'une base de donnée paradox
    Par Anonymous dans le forum Paradox
    Réponses: 5
    Dernier message: 14/02/2004, 18h39
  5. [VB6] [ODBC] Référencer une base de données avec vb
    Par af.balog dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/09/2002, 10h51

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