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

MS SQL Server Discussion :

Probleme connexion base de données (SQL Server 2005 Express)


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Probleme connexion base de données (SQL Server 2005 Express)
    Bonsoir,

    Voici mon soucis :
    J'ai créé une application VB 2005 s'appuyant sur une base de données SQLServer 2005 Express.

    Le soucis est que lorsque j'essaie d'entrer des données dans une table de cette base de données via mon application VB 2005, rien ne s'insert.
    J'ai alors vérifié qu'il ne s'agissait pas d'une erreur (de table, d'identifiant, ou autres...). J'ai testé alors directement une requete SQL dans l'editeur MS Visual VB 2005 Express dans l'interface dédiée aux bases de données. la requete enregistre bien l'ajout du nouvel élément dans la table. De même, lorsque je lance mon application, l'élément est correctement affiché.
    D'ou ma question, y a t il des problèmes connus sur la connexion à SQLServer 2005 Express?

    J'ai noté que des que je lance mon application en debug mode, l'indicateur de connexion a la base de données se met en "Fermé" avec une croix rouge sur l'icone de ma base de données (dans l'interface de l'editeur). je peux alors réactualisé la connexion a la base de données et l'icone prend l'aspect "connecté". Je me demande si tout simplement, il n'y aurait pas une instruction dans l'editeur ou sur le serveur SQL, me deconnectant de mon fichier ".mdf", m'empechant alors d'insérer des éléments dans mes tables.

    Merci par avance pour votre aide
    GuileIzback

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    - Est-ce que tu fais un open de ta connexion dans ton code vb ?
    - Est-ce qu'il y a un ON ERROR RESUME NEXT qui t'empêche de voir les erreurs retournées (je ne sais pas si on peu encore faire ça en VB 2005) ?
    - Tu auras peut-être plus de réponses en postant la question dans le forum VB
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    non non pas du tout
    j'utilise pas VB
    et j'essaye juste depuis visual studio de me connecter a ma base sql serveur sur une machine du reseau

    une idée

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par rudib
    Bonjour,

    - Est-ce que tu fais un open de ta connexion dans ton code vb ?
    - Est-ce qu'il y a un ON ERROR RESUME NEXT qui t'empêche de voir les erreurs retournées (je ne sais pas si on peu encore faire ça en VB 2005) ?
    - Tu auras peut-être plus de réponses en postant la question dans le forum VB
    Bonjour,

    Merci tout d'abord d'avoir répondu à mon message
    zmerli> je pense que tu as du te tromper de post !

    concernant mon probleme, je ne m'occupe pas de gérer l'ouverture et la fermeture de connexion avec la base de données c'est l'éditeur MS Visual VB 2005 Express qui s'en charge auprès du SQLserver 2005 Express via une interface(tu crées ta table pour ton application en mode graphique, tu lui donnes un nom, puis tu lui ajoutes des attributs et des méthodes). L'editeur ensuite génère de lui-même tout le code nécessaire aux "ouvertures et fermeture de connexion", "Select", "update", "delete", etc.
    Mais ta remarque est plutot bien venu, je vais essayer de forcer l'ouverture, ca doit bien exiter dans l'editeur une petite procedure d'ouverture...Bingo :

    >Public Overrides Sub SaveData()
    >
    >Dim maVariable As New maBDDDataSetTableAdapters.maTableTableAdapter
    >maVariable.Connection.Open()
    >maVariable.Update(monInterface)
    >maVariable.Connection.Close()
    >
    >End Sub


    Je teste de suite..

    Eh non, cela ne fonctionne pas. Ce serait etrange car le probleme n'apparait pas lors du chargement(affichage) des données dans l'interface de mon application:

    Fonction de chargement:
    >Public Overrides Sub LoadData()
    >
    >Dim maVariable As New maBDDDataSetTableAdapters.maTableTableAdapter
    >Me.monInterface = maVariable.GetData()
    >
    >End Sub

    Autrement dit, je peux extraire les données de "maTable" dans "monInterface".
    Mais je ne peux pas ajouter une instance de "maTable" via "monInterface" de mon application.
    Serait-il une histoire de droit d'écriture sur mon fichier ".mdf" non géré par l'editeur? (j'ai vérifié mon fichier .mdf n'est pas en lecture seule).

    Merci par avance pour toute votre aide
    GuileIzback

  5. #5
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Resalut,

    Ma remarque de poster plutôt dans le forum vb tient plus que jamais : il y a peu de compétences VB 2005 dans ce forum, j'imagine.
    Pas d'erreur retournée ?

    Fais attention de ne pas confondre un SGBDR comme SQL Server et un gestionnaire de fichiers comme Access. La dernière chose au monde dont tu as besoin de t'occuper est le fichier de bases de données. SQL Server a sa propre gestion de droits, rien à voir avec les droits des fichiers de l'OS. La différence entre Access et SQL Server, c'est un peu la différence entre ton annuaire téléphonique et les renseignements. En appelant les renseignements, tu n'as pas besoin d'avoir acheté un annuaire : tu dois avoir un abonnement téléphonique. Ensuite tu poses une question et on te répond. C'est la personne des renseignements qui te répond, pas toi-même qui cherche dans l'annuaire. Bref, c'est du client-serveur.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par rudib
    Resalut,

    Ma remarque de poster plutôt dans le forum vb tient plus que jamais : il y a peu de compétences VB 2005 dans ce forum, j'imagine.
    Pas d'erreur retournée ?

    Fais attention de ne pas confondre un SGBDR comme SQL Server et un gestionnaire de fichiers comme Access. La dernière chose au monde dont tu as besoin de t'occuper est le fichier de bases de données. SQL Server a sa propre gestion de droits, rien à voir avec les droits des fichiers de l'OS. La différence entre Access et SQL Server, c'est un peu la différence entre ton annuaire téléphonique et les renseignements. En appelant les renseignements, tu n'as pas besoin d'avoir acheté un annuaire : tu dois avoir un abonnement téléphonique. Ensuite tu poses une question et on te répond. C'est la personne des renseignements qui te répond, pas toi-même qui cherche dans l'annuaire. Bref, c'est du client-serveur.
    Bonjour,

    En fait, si j'ai posté ici c'est que je pense que ce n'est pas un probleme de l'editeur VB 2005 ni de langage VB 2005 mais directement rapport avec SQL Server2005 (le fait que l'application ne puisse pas ecrire dans ma base de données).
    Le code VB 2005 ("d'acces aux ressources SQL"), je l'ai repris d'un tutoriel fait par les gars de Wygwam avec leur application "GestionContacts", qui entre parenthèses fonctionne très bien "dans leur tuto"...mais pas sur ma machine.

    ===> d'ou ma premiere question de mon premier post

    D'ou ma question, y a t il des problèmes connus sur la connexion à SQLServer 2005 Express?
    Je m'attendais juste à un oui avec des explications ou à un non direct.

    Ensuite, rassure toi, je ne confonds rien entre SGBD et gestionnaire de fichiers. Tu dois certainement faire référence à :
    (j'ai vérifié mon fichier .mdf n'est pas en lecture seule).
    Cette remarque était pour signifier que si l'on me faisait la remarque, que j'y avais déjà pensé...après tout c'est possible qu'une application ne puisse interagir avec la base de données parce que tout simplement elle n'a pas les droits d'y écrire dessus.

    J'ai continué dans mes recherches et aucune solution n'en ressort.
    Aucune erreur ne m'est renvoyée. Y aurait un moyen de forcer l'affichage des requetes envoyées (load, select, update, close, etc.) à SQLServer dans l'interface d'execution d'une application?

    Je vais essayer de trouver une autre manière de coder le chargement et la sauvegarde des données dans ma BDD.

    Si quelqu'un toutefois aurait une idée lumineuse, je suis preneur.

    GuileIzback

  7. #7
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Citation Envoyé par GuileIzback
    En fait, si j'ai posté ici c'est que je pense que ce n'est pas un probleme de l'editeur VB 2005 ni de langage VB 2005 mais directement rapport avec SQL Server2005 (le fait que l'application ne puisse pas ecrire dans ma base de données).
    Si tu envoies une requête d'écriture à SQL Server et qu'il ne peut pas écrire, il va renvoyer une erreur. Donc de toute manière il y a un problème avec le code client (vb) : soit tu n'envoies pas la requête, ou pas correctement, soit elle ne réussit pas, et tu ne traites pas de message d'erreur dans ton code vb.

    Citation Envoyé par GuileIzback
    J'ai continué dans mes recherches et aucune solution n'en ressort.
    Aucune erreur ne m'est renvoyée. Y aurait un moyen de forcer l'affichage des requetes envoyées (load, select, update, close, etc.) à SQLServer dans l'interface d'execution d'une application?
    Si tu n'as pas d'erreur, et qu'il ne se passe rien, c'est effectivement que tu n'envoies peut-être rien. Tu as deux façon de t'en assurer :
    - tu peux tracer l'exécution des requêtes sur le serveur avec le profiler, mais je ne crois pas qu'il soit livré avec Management Studio Express (?). Pour des infos sur le profiler, voir mon article : http://rudi.developpez.com/sqlserver.../optimisation/
    - tu peux comme tu dis afficher les requêtes envoyées dans ton "interface d'exécution" : un problème vb et pas SQL Server : par exemple en suivant ce qui se passe dans une session de déboguage.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par rudib
    Si tu envoies une requête d'écriture à SQL Server et qu'il ne peut pas écrire, il va renvoyer une erreur. Donc de toute manière il y a un problème avec le code client (vb) : soit tu n'envoies pas la requête, ou pas correctement, soit elle ne réussit pas, et tu ne traites pas de message d'erreur dans ton code vb.

    Si tu n'as pas d'erreur, et qu'il ne se passe rien, c'est effectivement que tu n'envoies peut-être rien. Tu as deux façon de t'en assurer :
    - tu peux tracer l'exécution des requêtes sur le serveur avec le profiler, mais je ne crois pas qu'il soit livré avec Management Studio Express (?). Pour des infos sur le profiler, voir mon article : http://rudi.developpez.com/sqlserver.../optimisation/
    - tu peux comme tu dis afficher les requêtes envoyées dans ton "interface d'exécution" : un problème vb et pas SQL Server : par exemple en suivant ce qui se passe dans une session de déboguage.
    Eh bien...Cela a été laborieux, mais j'y suis arrivé !
    Et désolé pour toi rudib, mais j'avais bel et bien raison. C'est bien les versions Express des IDE C#, VB2005 et J# qui sont en cause et non mon code .
    Je doute que cela soit le cas pour les versions Standard, Pro, Architect, Team Suite etc...

    Une application nouvellement créée reposant sur une base de données SQLServeur2005 Express s'exécute en Debug Mode et la base de données (le fichier .mdf) est copié dans le répertoire "bin/debug/" du repertoire de l'application par l'IDE.

    Autrement dit, lors de la premiere exécution :
    1) Copie du fichier .mdf dans "bin/debug/"
    2) Lancement l'application
    3) Traitement (ajout/suppression/modification) des données de la base de données dans l'interface
    4) Enregistrement dans le fichier copié (celui dans "bin/debug")
    5) Fermeture de l'application
    ==> Rien n'est enregistré dans la base de données originale(celle à la racine du repertoire de l'application)

    Alors imaginez ce qu'il se passe quand on ferme et réouvre l'application...
    la boucle d'exécution (ci-dessus) se ré-exécute et du coup explique que les changements ne soient pas enregistrés !

    Pour résoudre cela, tout simplement, il faut parametrer l'IDE pour qu'il ne copie pas la base de données et l'obliger a démarrer l'application sur la base de données qui a été modifiée.

    1)Empecher la copie
    - Clic Droit sur la base de données dans l'explorateur de solutions
    - Choisir "Propriétés"
    - Changer ce qu'il y a en face de "Copier dans le repertoire de sortie" => Ne pas Copier

    2)Forcer l'execution sur la base de données modifiée
    - Clic Droit sur la base de données dans l'explorateur de bases de données
    - Choisir "Modifier la connexion"
    - Clic sur "Avancées"
    - en face de "AttachDbFileName", cliquer sur le bouton "..."
    - aller chercher la base de données se trouvant dans "bin/debug"
    - Cliquer OK
    - (Tester la connexion à la base si besoin) et Faire OK

    Et là lancer l'application, faire des modifications dans la base, fermer l'application, la ré-ouvrir et là Ôh Miracle...ca fonctionne !

    Il doit sans doute y avoir une autre solution moins contraignante. Cela dit on aurait peut etre aimé que Microsoft informe sur ce point concernant les applications stockant des infos dans une base de données...la base même de la plupart des applications modernes !

    mes sources :
    http://forums.microsoft.com/MSDN/Sho...38462&SiteID=1
    https://blogs.msdn.com/smartclientda...26/456886.aspx
    en anglais !!

    J'espère que cela en aidera quelque personne et peut etre meme trouver une autre solution!

    Amis programmeurs, a bientôt
    GuileIzback

  9. #9
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Citation Envoyé par GuileIzback
    Et désolé pour toi rudib, mais j'avais bel et bien raison. C'est bien les versions Express des IDE C#, VB2005 et J# qui sont en cause et non mon code .
    Merci pour l'info. Ceci dit c'est grave, je ne sais pas qui a accouché de cette idée. Comment fait-il pour une base sur une serveur distant ?
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par rudib
    Merci pour l'info. Ceci dit c'est grave, je ne sais pas qui a accouché de cette idée. Comment fait-il pour une base sur une serveur distant ?
    Oui, c'est ce que je me suis posé comme question...
    avec...comment fait on pour déplacer sa BDD?...comment changer le lien vers la BDD sans passer par l'IDE? Ca serait vraiment pratique quand même !!

    La réponse est sans doute :
    "Vous voulez une base de données sur un serveur?
    ... acheter les version Pro, Team Suite avec la version SQL Server 2005...

    Je rappelle les premiers prix :
    - presque 400€ TTC pour la version Standard de VS 2005
    - presque 2500€ TTCpour une version Standard de SQL Serveur 2005

    ... et après on dit du mal de Microsoft? Voyons voyons !

    Je connais pas tous les tarifs de VS2005 et de SQLServer2005, mais 3000 € pour faire tourner une "toute petite" (toute proportion gardée) application, faut vraiment se moquer des gens !!

    Enfin bon, quand on a le quasi-monopole, on pratique les politiques commerciales qu'il faut ! vive les IDEs alternatifs !

    GuileIzback

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    Salut

    J'ai un probléme , VS2005 n'arrive pas à trouver sql server express quand j'ajoute une connexion (via explorateur de serveur). Dans la liste déroulante, il ne trouve que le nom de l'ordinateur(FRED) alors que sur sql server tourne correctement (FRED/SQLEXPRESS sous management studio;cornection ok).

    Avez vous une idée de ce probélme?

    merci

  12. #12
    Membre averti Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Points : 363
    Points
    363
    Par défaut
    je te remercie pour ton aide, j' ai trebuché dessus tout un apres midi en vain puis je vois ton post maintenant. Microsoft

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

Discussions similaires

  1. [SQL-Server] Connexion a une base de données SQL Server 2005
    Par kaela dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 17/04/2014, 15h40
  2. connexion base de donnée sql server 2005
    Par labdel63 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/06/2011, 12h04
  3. Connexion a une base de données SQL Server 2005
    Par myannick dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/07/2009, 09h31
  4. Réponses: 19
    Dernier message: 30/09/2008, 13h44
  5. Réponses: 0
    Dernier message: 22/08/2008, 08h23

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