Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2005, 10h50   #1
Invité de passage
 
Inscription : mai 2002
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 19
Points : 3
Points : 3
Envoyer un message via AIM à Abidou
Par défaut Accès à pls bd local et remote en interbase

S.V.P.

Dans mon application, j'ai deux base de données (datalocal.gdb et datanet.gdb).

datalocal.gdb : contient les données non partagées, c.à.d. : données de paramétrage de poste en cours.
datanet.gdb : contient les données partagées en réseau.

J'ai pas de problème de connection à la base de donnée distante. Tous se passe très bien pour touts les postes.
Mais, ce qui est étonnant, je peux pas accéder à la base de donnée local des postes clients !!!
Le serveur peux accèder à sa BD local.

Est-ce que dans Interbase-Client, je peux pas accèder à plus d'une seul BD ?

Je tiens à signaler que dans les postes clients, je n'ai installé que InterBase_WI-V6.0.1-client.
mais dans le serveur j'ai installé InterBase_WI-V6.0.1-server.

J'ai fais des essai même avec IBConsole, mais le message d'erreur suivant apparait :
"Unavailable database
Database : c:\Mydata\datalocal.gdb"

C'est qlqn a une idée ?

Ou si je peux me débarrasser de la base de donnée local en utilisant une autre technique de paramaitrage.

Ne me dit pas d'utiliser la table des registre ou win.ini, c'est lourd, et j'ai plsrs variables a modifier et à consulter tout le tremps
de l'execution de l'Application.
Abidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2005, 11h24   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Si vous voulez utiliser des bases locales il faut installer sur chacun des poste interbase serveur en plus du client.

Sinon j'utiliserai plutot la base des registres ou les .ini avec Delphi/BC++ il y a plein de fonctions qui les rendent extrèmement facile d'utilisation.

Mais bon si ce n'est pas de votre gout, l'autre solution c'est de tout mettre sur le serveur, ce qui aura en plus l'avantage de pourvoir sauvegarder plus facilement ces paramètres et éventuellement les partager...

Donc sur le serveur vous pouvez soit intéger à votre base les tables necessaires auquels vous aurez ajouté une colonne UTILISATEUR pour ne pas mélanger les paramètres des différents utilisateurs. Ou dans une base à part comme vous l'avez fait avec vote base locale mais toujours en ajoutant la colonne UTILISATEUR à vos tables pour restituer que les paramètres de l'utilisateur (bien entendu il faudra modifier aussi les selects sur ces tables en y ajoutant dans la clause WHERE UTILISATEUR=:UTILISATEUR.)
UTILISATEUR étant demandé lors du l'ancement de votre application ou est récupéré d'un .ini ou base de registre pour éviter une resaisie.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2005, 13h55   #3
Invité de passage
 
Inscription : mai 2002
Messages : 19
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 19
Points : 3
Points : 3
Envoyer un message via AIM à Abidou
Oui, c'est ce que je fesais, mais, le problème est que tous les utilisateurs accèdent à cette base situé en serveur, et la chance d'avoir des message d'erreur est plus forte et l'accès sera lent.
Pour moi, je veux que la base locale soit accéssible seulement à l'utilisateur en cours, comme ça il y aura pas de conflit avec les autres.

Merci Barbibule pour ta répense, si tu as d'autre propositions, n'hésite pas à me les proposer. Tu as écrit :

Citation:
Sinon j'utiliserai plutot la base des registres ou les .ini avec Delphi/BC++ il y a plein de fonctions qui les rendent extrèmement facile d'utilisation
Si tu peut me montrer ses fonction :
Moi je connait : Read et write qui sont lourd à l'exécution.

Et il faut tenir que j'ai plusieurs valeur temporaires à sauvegarder.

Merci...
Abidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2005, 14h40   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Citation:
Envoyé par Abidou
Oui, c'est ce que je fesais, mais, le problème est que tous les utilisateurs accèdent à cette base situé en serveur, et la chance d'avoir des message d'erreur est plus forte et l'accès sera lent.
Pour moi, je veux que la base locale soit accéssible seulement à l'utilisateur en cours, comme ça il y aura pas de conflit avec les autres.
Je ne comprend pas ou est le problème ou du moins quel sont ces problèmes dont vous parlez.
Premièrement le serveur est 'normalement' plus performent que les postes.
Secondo vos paramétres sont certes sur le serveur mais chaque poste a son jeu de paramétre lui étant propre, il ne peut en aucun cas y avoir des conflits d'accès.

Citation:
Envoyé par Abidou
Merci Barbibule pour ta répense, si tu as d'autre propositions, n'hésite pas à me les proposer. Tu as écrit :

Citation:
Sinon j'utiliserai plutot la base des registres ou les .ini avec Delphi/BC++ il y a plein de fonctions qui les rendent extrèmement facile d'utilisation
Si tu peut me montrer ses fonction :
Moi je connait : Read et write qui sont lourd à l'exécution.

Et il faut tenir que j'ai plusieurs valeur temporaires à sauvegarder.

Merci...
Là on sort largement du domaine d'interbase il vaut mieux aller dans le forum Delphi ou BC++ pour plus de précision.

Mais par exemple avec Delphi pour écrire dans un .ini ou dans le base des registre c'est très simple et se fait de la même manière.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var Ini : TCustomIniFile; // donc peut recevoir soit un TRegistryIniFile ou un TIniFile
  stUserName : string;
  stPassword  : string;
begin
  //Ecriture dans la base des registres dans la section NomDeMonAppli
  Ini := TRegistryIniFile.CREATE('NomDeMonAppli');
  try
    // Ecriture dans la sous section Serveur de la cle UserName avec la valeur SYSDBA
    Ini.WriteString('Serveur','UserName', 'SYSDBA');
    // Ecriture dans la sous section Serveur de la cle Password avec la valeur masterkey
    Ini.WriteString('Serveur','Password', 'masterkey');
  finally
    Ini.free;
  end;
 
 
  // Lecture des données
  Ini := TRegistryIniFile.CREATE('NomDeMonAppli');
  try
    // Lecture dans la section Serveur de la clé UserName
    stUserName := Ini.ReadString('Serveur','UserName','');
    stPassword  := Ini.ReadString('Serveur','Password','');
  finally
    Ini.free;
  end;
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2005, 14h14   #5
Membre éclairé
 
Inscription : décembre 2004
Messages : 379
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 379
Points : 304
Points : 304
a propos des bases local, faire attention que "c:\mabase" peux échouer! il est préférable d'indiquer "127.0.0.1:c:\mabase" ou mieux avec firebird 1.5 et probablement d'autre version utiliser les alias, c'est plus sûr, et plus simple à gérer, dans ce cas, la chaîne de connexion devient "127.0.0.1:mabase" et dans l'alias.conf on y met: et hop, le tout et dans la boîte.

bien sur, comme dit plus-haut, il faut installer un serveur firebird/interbase sur le poste du client, sans cela, pas d'espoir.

a ce sujet, il me semble avoir vu quelque part qu'il existe un moyen d'obtenir une connexion local à une base local via un client (gds32.dll ou son equivalent) qui contenait le "serveur" sans devoir installer le serveur proprement dit, mais cela reste à vérifier!

cela dit, que ce soit en linux ou en windows, le systeme firebird/interbase client/serveur sont installés en moins de temps qu'il n'en faut pour le dire, alors pourquoi sans priver, sans compter que cela fonctionne (si si) sur des pentiums mmx à 200Mhz

mais il est curieux de travailler une fois en local et une fois en réseaux sur des postes fixes!?

comme Barbibulle le dit, il n'y a aucun confilt à raccorder 50 ou 100 clients à un unique serveur! Si vous avez un doute, essayez alors un firebird classique serveur sur une machine linux du genre bi-pro intel xeon avec 2 giga de ram et des disques scsi en raid 0+1 (10) et la, vous allez voir la moquette ce décoller...
jean-jacques varvenne est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h50.


 
 
 
 
Partenaires

Hébergement Web