[RESOLU] Base SqLite en réseau local OK

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

[RESOLU] Base SqLite en réseau local OK

Message par omega »

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
Dernière modification par omega le lun. 11/mars/2013 15:53, modifié 1 fois.
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
Atlante
Messages : 337
Inscription : mer. 29/juin/2011 18:35
Localisation : Paris

Re: Base SqLite en réseau local

Message par Atlante »

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
1) Sans voir ton programme c'est compliqué de répondre.
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
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: Base SqLite en réseau local

Message par gnozal »

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).
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

[RESOLU] Base SqLite en réseau local ok

Message par omega »

ç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
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [RESOLU] Base SqLite en réseau local OK

Message par falsam »

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.

Code : Tout sélectionner

If OpenDatabase(0, "host=adresseIP port=5432 dbname=nom de la base données", "Utilisateur", "Mot de passe")
Tu peux télécharger le serveur PostgreSQ depuis ce lien http://www.postgresqlfr.org
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%
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: [RESOLU] Base SqLite en réseau local OK

Message par omega »

Code : Tout sélectionner

If OpenDatabase(0, "host=adresseIP port=5432 dbname=nom de la base données", "Utilisateur", "Mot de passe")
Tu es sûr que c'est tout ce je que j'ai à faire? Mais où seront stockées les données?
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
Répondre