cs_AzertyH
Messages postés69Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention18 janvier 2007
-
4 juin 2006 à 07:42
bulbizzard -
6 oct. 2008 à 11:53
Bonjour,
Je viens de réaliser un logiciel avec VB2005 et une base de données Access. Je m'adresse aux personnes qui connaissent bien Vb.net + Access, car m'a question n'est pas une question en générale, mais bien spécifique à ces 2 logiciels de dévellopement!
Faut-il gérer l'accès concurentielle à ma base de données, ou, est-ce-que VB2005 gère lui-même les accès à cette base?
Pour détailler un peu plus...
J'ai un soft en VB2005 et une base ACCESS. Cette dernière est placée sur le réseau. Le logiciel en VB2005 est placé sur plusieurs PC. En fait , le soft en VB2005 exploite les données de ma base ACCESS.
Mais, il faut penser que tôt ou tart deux utilisateurs qui utilisent le soft vb2005 (sur 2 PC différents), mettront occasionellement ma base de données à jours et en même temps...
Donc là, normalement, y a problème! Mais, j'espère que VB2005 à la faculté de gerer ces 2 utilisateurs simultanés? Remarque: On utilise " UPDATE " pour mettre à jour la BBD.
Donc voilà, je me bas pour savoir comment sa marche, mais je ne trouve décidément pas! J'insiste à m'adresser à des personnes compétantes dans mon cas très précis (et non pas des cas similaires venant d'autres softs de dévelloppement). Pouvez vous me donner des liens ou je pourais trouver du code en VB2005 (ou 2003), si il faut programmer l'accès concurenciel.
cs_vpoyo
Messages postés363Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention20 avril 20106 5 juin 2006 à 11:30
De mémoire, il est possible de mettre des verrous sur une table en Access. ainsi un utilisateur devant écrire dans la base vérouillera la table avant de faire ta modif. Il est aussi de bon usage d'utiliser des transactions (commit/rollback) mais il me semble qu'access ne le gère pas.
par contre, à moins que ta base soit utiliser par d'autre applications, pourquoi ne pas la porter en sql server 2005 express, les perf, multi-user, sécurité n'en seront que mieux gérer
queenvince1
Messages postés10Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention 6 juin 2006 5 juin 2006 à 15:32
Bonjour,
Moi aussi je me pose la meme question....
J'ai lu dans le livre : visual basic .Net version 2003, que tu peux utiliser sql server pour regler le probleme, il faut installer un exemplaire sur le serveur....
encore un produit en plus a acheter...
j'aimerais avoir plus de renseignements a ce sujet ...
cs_vpoyo
Messages postés363Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention20 avril 20106 5 juin 2006 à 16:11
SqlServer 2005 express est gratuit par contre il nécessite le frameword 2.0. sur ce qui est de pouvoir l'attaquer grâce à une application écrite en .Net1.1 je n'en sais rien j'ai jamais testé.
queenvince1
Messages postés10Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention 6 juin 2006 5 juin 2006 à 16:25
ce qui nous interresse ici c'est de savoir la meilleure solution pour acceder a une BDD sur un reseau, je voudrais savoir ou stocké la BDD si elle est en access if faut un dossier partagé dc un PC allumé .... sur un serveur on peut stocké une BDD faut un disque dur connécté non ???
je pense que si tu veuc une solution "pro" c'est sql server qu'il te faut ....
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_vpoyo
Messages postés363Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention20 avril 20106 5 juin 2006 à 16:32
C'est sûr que si c'est centralisé vaut mieux éviter la base fichier ^^ mais plutot une db serveur. mais attention sql server est payant ! il existe toutefois un oracle 10g gratuit (a voir s'il est serveur ou fichier) sinon y a toujours mysql qui a déjà été mis plus d'une fois en production dans des solutions "pro". (et encore tout plein d'autre d'sgbd)
queenvince1
Messages postés10Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention 6 juin 2006 5 juin 2006 à 21:40
avec sql serveur , la bdd on la mets sur le serveur non ?
mais physiquement la base de données , j'ai pas compris est sur un PC?? qu'on accede a partir du serveur, je vois pas l'utilité...
cs_AzertyH
Messages postés69Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention18 janvier 2007 6 juin 2006 à 02:48
L'utilité de placer la BDD sur le serveur est de pouvoir l'exploiter sur plusieurs ordinateurs. Ainsi les sources de donnèes (contenues dans cette base de donnès) sont accessibles sur tous les PC du réseau. Plutôt cool !
Bref tous ces briants commentaires ne répondent pas précisément à ma question (voir le premier poste). Si quelqu'un connait bien VB.net + Access, pouvez-vous me dir si VB est autonome sur l'accès concurenciel à une base de données ACCES ?
queenvince1
Messages postés10Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention 6 juin 2006 6 juin 2006 à 11:39
En fait c'est plus tendu de faire des connexions simultanées car le probleme est qu'avec access (serveur de fichier) on doit telecharger la bdd avant de la modifier et donc s'il y a plusieurs utilisateurs ... la bande passante peut vite saturée...
cs_AzertyH
Messages postés69Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention18 janvier 2007 6 juin 2006 à 16:15
Je suis bien d'accord! J'ai été très déçu de la lenteur avec laquel mon application VB met de temps pour ouvrir ma BDD. Donc, si par exemple 2 utilisateurs ouvrent la BBD en même temps sa risque fort de créer un "conflit concurenciel". Enfin, j'ai pas encore fait les essais en multi-utilisateurs.
"J'ai lu dans le livre : visual basic .Net version 2003, que tu peux utiliser sql server pour regler le probleme, il faut installer un exemplaire sur le serveur...."
Ton idée de migrer vers SQL express me parait interressante. L'ennui c'est le temps que ça peut prendre... Dans ce livre, ils parlent vraiment de ce problème avec access? Enfin que dit-il vraiment?
Connaissez-vous des livres parlant des précautions à prendre pour créer des aplications multi-utilisateurs. C'est très important si l'on désir créer des applications stables et puissantes, surtout pour des entreprises.
queenvince1
Messages postés10Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention 6 juin 2006 6 juin 2006 à 16:21
j'ai lu le meme livre que toi !! il est tres bien il me passionne, par contre j'ai essayé d'installer sql server 05 prof et je pense qu'il faut un serveur physique pour l'utiliser...
c'est drole héhéhé, enfin je suis sur que l'on peut simuler un serveur....
enfin la reconnaissance et l'installation doit se faire ss prob sur un reseau pourvu d'un serveur il doit pas y avoir de prob pour faire la BDD, suffit de savoir sur quel pc installé le sql server....
sinon tu peux a partir de visual studio faire ta base le meilleur exemple est sur le site (coach VB) en revanche la meuf est calée et elle fait des classes etc... c'est assez cho mais bon...
cs_AzertyH
Messages postés69Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention18 janvier 2007 6 juin 2006 à 16:31
Ok, j'irai faire un rour sur "coach VB". Au faite j'ai pas lu le livre, c'est juste une citation de ta phrase !
A part ça, sur developper.com j'ai obetenu deux liens qui Soi-disant parlent du problème en question, mais c'est malheureusement en englais. On peut utiliser le traducteur linguistique de google (à moins que vous connaissez un meilleur moyen de traduction?). Pour l'instant j'ai vaguement lu ce qu'ils raconte. Vous me ferez part de vos commentaires . Bon a plus
queenvince1
Messages postés10Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention 6 juin 2006 6 juin 2006 à 21:15
Houla! C'est tendu les deux liens ....assez cho a comprendre sql n'est apparement pas compliqué tu peux meme creer ta bDD dans VS .net !!!
apres avoir installé sql server , bien entendu tu auras une bdd sur serveur !!!!
GiBuSS1942
Messages postés11Date d'inscriptionsamedi 1 janvier 2005StatutMembreDernière intervention20 juin 2006 14 juin 2006 à 12:51
Mais avec Acces et VB.NET on peut attaquer une base de données a plusieurs en meme temps... ???
Ils suffit de mettre sa dans l'ouverture de la connexion :
Cn.ConnectionString "Provider MSDATASHAPE; Data Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = C:\Documents and Settings\RATP\Bureau\Projet\Indexation\Indexation\bdindex.mdb"
Cn.Open()
Non ???? Moi en faisant sa je peux l'attaquer de different endroit et le programme gere lui meme le "tour a tour". Il bloque l'acces seulement lors de l'update...
Enfin sa marche avec mon programme mais peut etre pas avec le tien ... Je donne juste mon avis
cs_AzertyH
Messages postés69Date d'inscriptionsamedi 25 mars 2006StatutMembreDernière intervention18 janvier 2007 15 juin 2006 à 17:32
Salut,
Depuis mon dernier message sur cette question, je n'ai pas cherché plus car j'ai restitué mon projet à l'entreprise. Cette dernière ne ma pas donnée de nouvelles sur le bon fonctionnement de l'access à plusieurs utilisateurs simultanés de la base ACCESS.
Ce que tu dis GiBuSS1942, m'interresse beaucoup.
1 ) "Il bloque l'acces seulement lors de l'update... "
VB affiche-t-il un message automatiquement et sans que tu ne l'ai programmé? Ce message est de quelle forme : Est-ce-qu'il faut appuyer sur OK pour poursuivre ton application normalement? Ce message, que dis-t-il vraiment?
2 ) Le code de ta connection que tu as écrit dans ton message
Moi j'utilise l'assistant pour me connecter à ma source de données. Toi, apparament, tu fais cela de manière manuel ( en écrivant le code ). As-tu inséré quelque chose de spécial dans ce code de connection à ta base de donné, pour permetre à VB de gérer les acces simultanés sur ta base de données.
Merci beaucoup pour les renseignements que tu peux m'apporter.
Cordialement.
GiBuSS1942
Messages postés11Date d'inscriptionsamedi 1 janvier 2005StatutMembreDernière intervention20 juin 2006 15 juin 2006 à 19:11
Alors premierement, non le programme ne te mettras pas de message, tous se fait en arriere plan si on peut dire, en fait lorsque que ce que tu auras programmer dans ton code mettras a jour ta base de donnees, il bloquera l'acces aux autres utilisateurs, mais il ne tient qu'a toi de mettre dans ton code que si la base est deja utilise, une message box apparait disant a l'utilisateur de recommencer dans quelques seconde.
Ensuite pour ta deuxieme question, il suffit juste d'implanter la gestion de base de donnee ADODB dans VB, pour cela tu va je crois dans projet, ajouter une reference et tu cherche un truc ressemblant a "Microsoft ... ADODB 2.8 library"
Voila si tu a d'autres questions, ou si je peux t'aider, voila mon msn gibuss_@hotmail.fr.
cs_oubaid639
Messages postés5Date d'inscriptionmardi 10 janvier 2006StatutMembreDernière intervention14 mars 2007 7 févr. 2007 à 23:28
Bonjour,
bon avant tout je vais te dire que aussi je programme sous VB2005 et ACCESS et j'ai deja realiser un logiciel (application wondows) et je l'ai testerpas mal de fois et c'est bien
1 - alors ta deux methode soit copier ta base sous reseau et le logiciel dans chaque poste client (c'est pas pratique) oubien copier la base access dans le serveur et installer le logiciel aussi dans l serveur apres crée dé raccourçi dans les poste concerné oubien partagé le raccourçi
2 - je ne sais pas si tu prgramme aussi des application Web + ACCESS, si c'est le cas je peux t poser une question a propos d'access car mon probleme c'est que je peux partir installer l'application dans tout les poste client car c'est une application nationale alors j sais pas comment faire pour ma base access ?
voila mon adresse pour mieux discuter nos problémes ([mailto:benzougarh@gmail.com benzougarh@gmail.com])
(enfin j'ai trouvé quelqu'un qui programme sous VB2005)