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

Résolu
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008 - 31 mai 2006 à 11:38
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008 - 9 juin 2006 à 15:17
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

cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
31 mai 2006 à 12:08
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
3
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
31 mai 2006 à 14:34
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
3
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
31 mai 2006 à 18:04
Ce lien devrais pouvoir répondre à ta question
http://www.connectionstrings.com
3
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
1 juin 2006 à 13:58
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
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
1 juin 2006 à 14:50
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 ??
3
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
1 juin 2006 à 17:37
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.
3
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
2 juin 2006 à 09:18
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é ?
3
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
2 juin 2006 à 10:26
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.
3
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
2 juin 2006 à 11:57
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
3
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
6 juin 2006 à 10:30
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)
3
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
6 juin 2006 à 10:51
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
3
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
6 juin 2006 à 10:24
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 ^^
0
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
6 juin 2006 à 10:39
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 ^^
0
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
6 juin 2006 à 11:02
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






 
0
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
6 juin 2006 à 16:19
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 ?
0
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
6 juin 2006 à 16:23
-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 ?"
0
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
6 juin 2006 à 18:18
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)
0
ApiO Messages postés 17 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 17 juin 2008
9 juin 2006 à 15:17
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
0
Rejoignez-nous