[MSDE & VB6]_[initié]_Compatibilité ?

[Résolu]
Signaler
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008
-
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008
-
Bonjour,
Je suis actuellement en stage et je dois faire passer une appli VB6
mono-utilisateur avec une base Access en Mutli-Utilisateur. Pour éviter les
problémes qu'engendre Access quand on passe en Mutli-Utilisateur, je me suis
intérresé au différentes SGBD existante et MSDE me parait
être pas mal.

Question :
- est il possible d'utiliser MSDE de la
même maniére qu'access pour une application bureautique ? à savoir : un fichier
de BDD avec un ODBC.
- Si oui, quel est l'ODBC et comment se comporte t il
lorsque on déploit l'application ? a t on besoin de mettre à jour le système en
ammont ?

Merci d'avance

18 réponses

Messages postés
363
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
20 avril 2010
3
Il est possible de travailler avec une base ficher mais uniquement avec SQL Server 2005 express (qui est gratuit).

attention il me semble que sql server 2K5 Express nécessite le frameword dotnet 2 qu'il faudra redéployer sur tous les postes. par contre il me semble qu'il est compatible avec le driver odbc de Sql Server 2000, et qu'on pourrait se passer de dotnet pour attaquer la base (a voir)

il me semble que les bases de données paradox  sont aussi orienté fichier
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

voila tout ce q'il faut savoir sur MSDE, seul regret pas d'info au niveau bureautique
http://www.asp-php.net/tutorial/sql-server/sql_msde.php
Messages postés
615
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 juillet 2012

Ce lien devrais pouvoir répondre à ta question
http://www.connectionstrings.com
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

MSDE passe bien avec VB6


Seul hic, ma BDD est portée par le server de MSDE; ce qui est pas
terrible pour une appli destinée à une utilisation bureautique, vu que
l'utilisateur lambda qui va installer mon logiciel va devoir installer
un serveur :s ...


Donc actuellement, je travail à me connecter directement sur le fichier .Mdf (tel q'on le fait avec le .mdb d'access).

Si quelqu'un sait je suis preneur et biensur si je trouve je post ça
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

donc au lieu de faire une connexion de ce type :
"Driver= {SQL Server};Server=.....;Database=.....;Uid=......;Pwd=.....;"

je fait :
"Driver={SQL Server}; Dbq =C:\maBDD.Mdf;Database=.....;Uid=......;Pwd=.....;"


et là, l'appli se connect c'est la fête ! Sauf que SQL serveur doit être lancé !

ça parait normal.

Attention : question philosophique de comptoire à 4 grammes !!!


La raison pour laquelle Access ne gére pas le multi-utilisateur est
elle que pour qu'une base de donnée y arrive, un serveur doit être mis
en place ?


si c'est le cas, il y a t il un moyen connu pour déplacer ces fonctionnalitées au niveau applicatif ??
Messages postés
615
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 juillet 2012

Rien n'empêche de faire du multi-utilisateur avec Access c'est juste un peu plus restrictif au niveau des accès concurent qu'avec SQL-Server (MSDE). En général on ne migre pas de Access sur MSDE pour ces raisons, mais plustôt pour des raisons de performances sur des grosses bases de données.
Pour ce qui est de faire du MSDE sans le moteur serveur à mon avis tu peux oublier.
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

Et bien merci pour cette réponse et c'est ce que je craingais, je me retrouve donc dans une impasse , mais je trouve ça curieux quand même, je n'ai pas trouvé de SGBD qui gére les fameux accés concurent sans avoir besoin de serveur derriére  cela existe t il sur le marché ?
Messages postés
615
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
4 juillet 2012

Faux Access gère les accès concurents!

D'après Microsoft, MS Access supporterait des configurations de 256 postes. Mais en pratique, pour une utilisation confortable, MS Access serait limité à une vingtaine d'utilisateurs simultanés, les échanges réseaux étant 10 à 20 fois plus gourmands en ressources qu'avec Microsoft SQL Server. Si Access est limité en nombre d'utilisateurs, il peut par contre gérer, sur de petits réseaux locaux de bonne qualité technique, des quantités d'informations qui vont bien au-delà des besoins de beaucoup d'organismes.

Regarde ce lien il t'en dira plus
http://www.editions-organisation.com/Chapitres/9782212114652/chap21_Taylor.pdf?xd=ccec26d07b1df4a18227c139311dde96

Il parle de VBA mais en VB c'est du kif.
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

Waw ce pdf est vraiment une mine d'information !
Merci beaucoup à tous pour vos précieux conseils, je ne pensais pas qu'on pouvait faire autant de choses avec de simple vérrou sous access !! en espérant éviter ces fameux "deadlocks" je me retire

encore merci
Messages postés
363
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
20 avril 2010
3
plusieurs choses à vérifier :
          1/ essaye avec \\PC3 comme nom de serveur
          2/ vérifie que ton sql server soit une instance par défaut. si tu as fais une install en tant qu'instance nommée il faut la préciser
          3/ vérifie que la syntaxe est la bonne pour ta chaine de connection. en effet, celle-ci change en fonction du type de SGBD et du driver que tu utilises pour l'attaquer. (ici ADO)
Messages postés
363
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
20 avril 2010
3
heu je sais plus :-/ et j'ai pas de sql server sur cet environnement de dev. ca doit pouvoir se voir dans les services windows ou en lancant le manager.
j'ai vérifier la connectionstring sur un site (http://www.infini-fr.com/Sciences/Informatique/Reseaux/Internet/WorldWideWeb/Asp/database.html)
et la personne utilise ceci.:

Connexion
SQL
Server

"Provider=SqlOleDB;Server=???;Database=???;"
& _

"User
ID=???;Password=???"
on voit qu'il y a provider en plus, que c'est user id et password au lieu de uid et pwd
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

bonjour,
 Maintenant mon projet a bien évolué
et mon appli vb6 fait appel à une base SQL et utilise un seveur MSDE
pour se connecter.
(je garde la solution d'access au chaud en cas  de pb^^)

Il ne me reste plus qu'à réussir à connecter mon appli en tant que
client via le réseau local, ce qui me pause certains pb . ma connexion
est la suivante :

_________Mes variables globales___________________________________________________

    Public Connection As ADODB.Connection

    Public rs As ADODB.Recordset

    Public Const NomServeur As String = "PC3" 'nom réseau du serv

    Public Const NomBase As String = "test"

    Public Const IDutilisateur As String = "sa"

    Public Const PWDutilisateur As String = "monPass"

    Public bErreur As Boolean


_______Dans un formulaire_______________________________________________________

Private Sub cmdSelect_Click()


    Set Connection = New ADODB.Connection

    Connection.Provider = "sqloledb"


    On Error GoTo ETQ_Skip

    Connection.Open "Server=" + NomServeur + ";Database=" + NomBase + ";UID=" + IDutilisateur + ";pwd=" + PWDutilisateur + ";"

  

    ReqSQL = "SELECT A_nomRue FROM cms_addresse "

 

    Set rs = New ADODB.Recordset

    rs.Open ReqSQL, Connection, adOpenDynamic, adLockOptimistic


    Text2.Text = rs.Fields(0)

  

    Connection.Close

    Exit Sub

   

ETQ_Skip:

    If bErreur = True Then

        Exit Sub

    Else

        bErreur = True

        MsgBox Err.Description & " -Select-"

        Err.Clear

        Exit Sub

    End If

   

End Sub

_________________________________________________________________________


Voila, je suis en ce momment sur cette connexion et ai un message d'erreur m'indiquant :

"[DBNETLIB][ConnectionOpen(Connect()).]Ce serveur SQL n'existe pas ou son accés est refusé. -Select-"

soit le MsgBox de l'étiquette


là je séche pour le momment, j'ai partagé mon répertoir du serv en accés total dans le doute,

 et mon firewall et anti virus ne pause pas de pb, donc je ne vois pas ou est le pb ....


Voila si vous avez la moindre idée merci d'avance ^^
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

merci d'avoir répondu aussi vite

pour :
3/ la chaine de connexion est bien celle-ci ce qui implique que pour 1/, mon serveur est bien "PC3" (aprés tests au cas ou biensur).

2/ ?? comment vérifit on cela ??

merci ^^
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

Qaund on va sur http://www.connectionstrings.com/ on vois que la connexion est du type
OLE DB, OleDbConnection (.NET, j'utilise un ODBC basique et qui marche quand l'appli est sur le post ou il y a le serv, ton idée sur la connexion à une "instance" doit être la bonne je regarde ça ^^ merci






 
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

je pense que le probléme est que dans ma chaine de connexion, je ne pointe pas précisement sur une machine du réseau. Le souci est qe si j'utilise la propriétée : Database=C:\tralal\tsouintsouin ... là je pointe sur un ordinateur, pas un serveur ! QUelqun sait il comment je peux corriger ma chaine pour retrouver ces deux notions ?
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

-Edit-
"je pense que le probléme est que dans ma chaine de connexion, je ne
pointe pas précisement sur une machine du réseau. Le souci est qe si
j'utilise la propriétée :Database=\\PC3\tralal\tsouintsouin ...là je
pointe sur un ordinateur, pas un serveur ! QUelqun sait il comment je
peux corriger ma chaine pour retrouver ces deux notions ?"
Messages postés
363
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
20 avril 2010
3
Essaye de te connecter avec l'outil intégrer à VB : Complément/gestionnaire de données ...
une fois connectée tu devrais avoir la connectionstring dans la propriété connect (dans properties)
Messages postés
17
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
17 juin 2008

bonjour,
j'ai changé ma chaine de connexion par un appel de fichier DSN, qui est parait il, la méthode utilisée pour connecter des applications à une BDD par un réseau.

Mon seul soucis est lorsqu'un utilisateur veux se connecter à mon serveur SQL (MSDE) je constate sur le serveur que j'ai des paquets entrant, mais qu'il ne veut rien laisser passer (une croix rouge apparait sur l'îcone du serveur) à chaques arrivés de données.

Mes codes VB6

mon DSn :

[ODBC]
DRIVER=SQL Server
UID=sa
Network=DBMSSOCN
DATABASE=BDDtest
WSID=PC3
APP=Microsoft Data Access Components
SERVER=PC3
Description=Connexion MSDE réseau

Ma connexion :

Public Sub blnConnection()
    'Fixer les propriétés de la connection
    Set gcn = New ADODB.Connection
    With gcn
        .ConnectionTimeout = 100
        .ConnectionString = "FILEDSN=C:\Program Files\projet1\MonDSN.dsn;UID=sa;PWD=adrien;"
    End With
    'En cas d'erreur, avertissement !
    On Error GoTo ErrHandler
    'Tantative Connection
    gcn.Open
    MsgBox "connexion : OK !"
    Exit Sub
ErrHandler:
    MsgBox "La connection a échoué !" & vbCrLf & Err.Description & vbCrLf & Err.Source & vbCrLf, vbCritical
    Err.Clear
End Sub

pour la création de mon DSN voir :
Attention l'image est lourde

Note : tous mes postes passent par un switch simplement, ce sont des XP Home, les fire wall et anti virus sont bien domptés