Bonsoir,
C'est la première fois que j'utilise une base de données Sqlite en réseau local ( 6 postes + serveur). Je n'ai pas encore installé mon réseau mais ça sera fait très bientôt (le matériel est déjà prêt et le logiciel aussi bien sûr).
J'ai deux questions à poser :
1) Est-ce que je dois configurer ou changer quelque chose dans mon programme pour que ça fonctionne comme en mono?
2)Si deux utilisateurs accèdent à une même table en même temps, que se passera t -il??
Merci
[RESOLU] Base SqLite en réseau local OK
[RESOLU] Base SqLite en réseau local OK
Dernière modification par omega le lun. 11/mars/2013 15:53, modifié 1 fois.
Win7 (x64) 64 bits Pb 5.72
Re: Base SqLite en réseau local
1) Sans voir ton programme c'est compliqué de répondre.omega a écrit :Bonsoir,
C'est la première fois que j'utilise une base de données Sqlite en réseau local ( 6 postes + serveur). Je n'ai pas encore installé mon réseau mais ça sera fait très bientôt (le matériel est déjà prêt et le logiciel aussi bien sûr).
J'ai deux questions à poser :
1) Est-ce que je dois configurer ou changer quelque chose dans mon programme pour que ça fonctionne comme en mono?
2)Si deux utilisateurs accèdent à une même table en même temps, que se passera t -il??
Merci
2) Le premier qui arrive vérrouille la table, il n'y a pas de "en même temps"
wikipedia :
lorsqu'un nombre important de clients accèdent à une même base, si un des clients commence la lecture d'une partie, la totalité de la base est bloquée en écriture pour les autres clients, et inversement si un des clients démarre l'écriture dans une partie, la totalité de la base est bloquée en lecture pour les autres clients. Ces derniers sont alors mis en attente durant ce laps de temps, ce qui peut être contre-performant ;
Modérateur
Config : Intel I5 4670K, Nvidia Geforce GTX 1060, 16go RAM, SSD 256go, DD 2000go
Config : Intel I5 4670K, Nvidia Geforce GTX 1060, 16go RAM, SSD 256go, DD 2000go
Re: Base SqLite en réseau local
A ma connaissance SQLite est mono-utilisateur, et donc pour un environnent multi-utilisateurs il va falloir quelques adaptations...
Il existe au moins une solution client-serveur gratuite open source : sqlitening (anglais uniquement).
Il existe au moins une solution client-serveur gratuite open source : sqlitening (anglais uniquement).
[RESOLU] Base SqLite en réseau local ok
ça y est j'ai trouvé une astuce et (pour l'instant) ça marche sur 3 postes
J'ai simplement créé une base virtuelle pour chaque utilisateur et juste après validation (facture, stock etc....) les mises à jour seront transférés immédiatement vers la base centrale...
Espérons que ça dure ...
Cordialement
J'ai simplement créé une base virtuelle pour chaque utilisateur et juste après validation (facture, stock etc....) les mises à jour seront transférés immédiatement vers la base centrale...
Espérons que ça dure ...
Cordialement
Win7 (x64) 64 bits Pb 5.72
- falsam
- Messages : 7317
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [RESOLU] Base SqLite en réseau local OK
Pourquoi n'utilises tu pas une base de données de type Postgr ? ça ne changera rien au niveau de ton programme au contraire ça va le simplifier. Ton serveur est installer sur un pc de préférence autonome. Chaque poste communique avec lui grâce à son adresse IP+port.
La seule différence est la manière d'ouvrir un fichier.
Tu peux télécharger le serveur PostgreSQ depuis ce lien http://www.postgresqlfr.org
La seule différence est la manière d'ouvrir un fichier.
Code : Tout sélectionner
If OpenDatabase(0, "host=adresseIP port=5432 dbname=nom de la base données", "Utilisateur", "Mot de passe")
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: [RESOLU] Base SqLite en réseau local OK
Code : Tout sélectionner
If OpenDatabase(0, "host=adresseIP port=5432 dbname=nom de la base données", "Utilisateur", "Mot de passe")
dans sqlite ou dans postgr? Dois-je installer Postgr? Y a t-il une configuration à faire?
J'avoue que je vois flou, éclaires-moi stp sachant que:
Le serveur est autonome et le chemin du réseau est z: qui correspond à:
d:\data\mabase1.db, mabase2.db, etc...
les 6 utilisateurs accèdent normalement au serveur sans problème
mon programme marche bien en mono et même en réseau mais j'avoue que parfois il y a un ralentissement surtout au niveau de la mise à jour de la base centrale
(les utilisateurs travaillent sur une base virtuelle spécifique pour chaque poste)
exemple:
l'utilsateur 1 utilise le chemin \\base1\data
l'utilsateur 2 utilise le chemin \\base2\data
l'utilsateur 3 utilise le chemin \\base3\data
etc...
après validation de son travail, seules les mises à jour seront transférés dans la base centrale
qui se trouve ici: \\basecentrale\data\
Excuses moi si je suis gourmand mais il me faut ds explications détaillées car je ne connais pas postgr et je n'ai pas le temps de l'apprendre maintenant parce que ce n'est vraiment pas le moment ...
Merci infiniment Falsam
Win7 (x64) 64 bits Pb 5.72