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

VB.NET Discussion :

Comment lier application avec une base distante


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut Comment lier application avec une base distante
    Bonjour,
    Je vous explique mon souci, je développe une application en Visual Basic 2008 Express et mon application doit être présente sur plusieurs postes. J'ai besoin de créer la base mdf sur un dossier partagé du serveur, mais je n'arrive pas à faire cette manip à l'aide de l'onglet "Source de données".
    J'obtiens le message d'erreur suivant:
    "Le fichier '...' se trouve sur un chemin d'accès réseau qui n'est pas pris en charge pour les fichiers de base de données[...]"

    Etant novice, je me tourne vers vous afin de savoir par quelle méthode je peux réaliser ce projet. Faut-il créer la base sur le serveur via SQLServer?

    Merci d'avance.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si tu es sur un sql server normal, tu n'as pas à te connecter à un fichier mais à moteur de base de données, donc il n'y a rien à partager sur le réseau, juste connaitre l'adresse ip (ou le nom) du pc ainsi que le nom de l'instance sql server
    donc l'exe est le meme sur tous les postes, le chemin réseau menant en tout point au même endroit pour une adresse

    à moins que tu sois sur sql server compact ou mobile edition, y en a un des 2 qui doit etre différent
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    En fait, j'utilise l'assistant de VBExpress pour créer ma base de données:
    - je crée une nouvelle connexion, avec "Fichier de base de données Microsoft SQL Server" comme source de données,
    - je rentre le chemin de la base mdf,
    - et je choisi mon authentification.

    Malheureusement, comme je suis débutant, j'ai un peu de mal avec SQLServer.
    Merci pour la réponse, aurais-tu un lien vers un tutoriel expliquant la méthode pour créer la connexion à moteur de base de données.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    je connais pas trop ce que fais vb express quand on créé une base avec lui

    regarde si tu as sql server studio management d'installer (menu démarrer)
    si oui regarde si ta base apparait dedans

    enfin je crois que vb express installe sql server express, donc une version normale d'sql server
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Dans VBStudio, j'utilise l'explorateur de base de données pour créer les tables et les remplir. Avec SQL Server management, j'obtiens un moteur nommé SQLEXPRESS mais ma base n'apparait pas???

    Pour info voici la chaine de connexion que j'utilise dans mon application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    connectionstring = "Data Source=.\SQLEXPRESS; _
    AttachDbFilename=|DataDirectory|\GestionPatients.mdf; _
    Integrated Security=True;Connect Timeout=30;User Instance=True"

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    alors je suppose que cette chaine de connexion demande à sqlexpress qui est installé de gérer la base au chemin indiquée (attachement temporaire)

    donc à priori il doit etre possible de l'attacher de facon durable à sql express
    la chaine de connexion sera un poil différente, mais le reste ne devrait pas changer


    Data Source=ip_ou_nom_pc\nom_instance
    Data Source=.\SQLEXPRESS
    "." veut dire sur ce pc


    pour attacher la base à sql server, il faut faire "joindre" dans studio management et indiquer ou est le fichier mdf
    ensuite change ta connectstring pour voir si ca fonctionne


    Integrated Security=True veut dire que c'est le nom d'utilisateur windows qui est passé pour se connecter à sql server, donc si c'est pour une appli multiposte, il faut créer tous les utilisateurs dans sql server avec le meme nom que sous windows sur leur poste
    (il y a aussi la méthode de connexion sql plutot que windows, il y a un login et un mot de passe dans le connectstring; à paramétrer aussi dans sql server)

    et je crois que par défaut sql server n'accepte pas les connexions par réseau (donc en local ca devrait marcher quand meme)
    il y a des paramètres ici et là dans le gestionnaire de configuration sql server
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Merci sperot51 pour tes réponses, mais après plusieurs recherches sur le net, je viens de voir qu'il est impossible de créer une liaison réseau avec une base sur VBExpress (En utilisant l'assistant).

    Je vais essayer de créer directement ma base SQL sur le serveur via SSMS, mais étant débutant ça risque d'être dur.

    Si tu as une autre idée, pour que je puisse avoir une base sur un serveur et que les utilisateurs puisse accéder à cette base, sans l'avoir en local... Je suis preneur.

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    avec un sql server express installé sur un poste, tu peux déployer un exe fait avec vb express sur plusieurs postes en réseau, ca c'est sur

    les assistants ne permettent pas de sélectionner une source sql server par contre, donc il va falloir tout faire par code
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Pour le code, je pense pouvoir me débrouiller, j'arrive déjà à me connecter à la base créé avec l'assistant, je remplit par le code mon dataset via un SqlDataAdapter, etc...
    En fait mon application est quasi terminée... il ne manque plus que la base accessible par tous les utilisateurs.

    Si tu connais un tutoriel sur la création de base SQLServer, merci de me le communiquer.

    Et si je n'arrive à faire cette base, j'utiliserai une base Access... mais je préférai utiliser SQLServer afin d'apprendre et de pouvoir créer d'autres applications plus poussés.

  10. #10
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si tu as un fichier .mdf, ca doit etre une base sql server
    donc essaye de l'attacher via studio management
    (clic droit sur "base de données" puis joindre)

    sinon créé en une nouvelle dans studio management

    après je ne sais pas trop ce que tu veux savoir, dans studio management, tu fais des clics droit un peu partout et selon ou tu clics ca propose des trucs ou d'autres
    genre sur tables y a "nouvelle table"
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    En fait j'ai essayé de joindre ma base créé avec l'assistant dans mon SQLServer local et j'ai un message d'erreur "[...] n'est pas un fichier de base de données primaire." J'ai créé alors une nouvelle base de données, et là tout va bien.

    Mais en fait ce que je veux faire, c'est créé un nouveau moteur de base de données sur le serveur de la société. Et là, je bloque!?!

    Mon choix de base SQLServeur n'est peut-être pas approprié. Pour te donner des informations sur mon appli, je crée un programme permettant aux techniciens d'entrer le nom des patients vu et ainsi de sauvegarder le dossier, contenant le relevé machine, sur le serveur et aussi de mettre à jour les relevés des patients vu par un autre technicien.
    Ma base contient seulement 3 tables, une pour avoir le nom du technicien et le chemin réseau des dossiers patients, une autre table contenant les patients et la dernière contenant les patients qui ont été vu et qui sont à mettre à jour.

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    sql server peut quand meme convenir, si tu as d'autres applis au moins ca te permet d'avoir la meme chose partout

    il suffit d'installer sql server express sur le server final
    et tu fais clic droit sur ta base puis détacher
    les fichiers .mdf et .ldf sont libérés, tu les copies sur le server et tu fais joindre

    la chaine de connexion diffère aussi entre ta base de developpement et ta base client aussi vu que l'ip sera en théorie différente

    sql server est un bon produit, certes plus compliqué à gérer qu'access mais qui apporte pas mal de choses aussi
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 22
    Points
    22
    Par défaut
    Merci sperot51 pour tes explications, j'ai réussi à lier ma base et maintenant ça marche à partir d'un poste client.

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

Discussions similaires

  1. application delphi 5 avec une base distante
    Par tijani dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/02/2010, 11h55
  2. Synchroniser une application avec une base de données centrale
    Par Sayrus dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 25/08/2009, 20h22
  3. [AC-2003] Comment lier un projet à une base de données
    Par cedill23 dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/07/2009, 12h01
  4. Comment lier un treeview à une base de données ?
    Par Fngonka dans le forum ASP.NET
    Réponses: 5
    Dernier message: 22/05/2008, 16h33
  5. Une application avec une base de données
    Par nabil148911 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/03/2008, 11h21

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