IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

InterBase Discussion :

Accès à pls bd local et remote en interbase


Sujet :

InterBase

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 19
    Points : 9
    Points
    9
    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.

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    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.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    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 :

    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...

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    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 :

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Points : 376
    Points
    376
    Par défaut
    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...

Discussions similaires

  1. [EJB3] Interface locale et remote
    Par rintchu dans le forum Java EE
    Réponses: 1
    Dernier message: 27/04/2009, 15h46
  2. UrlRewriting Local vs Remote
    Par Chasseur d'étoiles dans le forum ASP.NET
    Réponses: 6
    Dernier message: 30/12/2008, 10h12
  3. Réponses: 0
    Dernier message: 05/03/2008, 11h22
  4. [EJB] [Bonnes Pratiques] Interfaces home/locale et remote
    Par Methode dans le forum Java EE
    Réponses: 2
    Dernier message: 19/02/2008, 17h59
  5. [Sécurité] probleme d'acces en reseau local avec OPENDIR()
    Par babycracker dans le forum Langage
    Réponses: 3
    Dernier message: 28/09/2005, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo