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

Firebird Discussion :

programmation client/serveur firebird


Sujet :

Firebird

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 212
    Points : 81
    Points
    81
    Par défaut programmation client/serveur firebird
    salut a tous je vous demande pardon mais je dois chercher de l'aide parce que je suis bloqué !!!
    je travaille sur delphi et firebird 2.5 pour les les applications mosnoposte j'ai aucun probleme ,, mais quand il s'agit de client/serveur je suis vraiment bloqué!!
    - quand un programmeur professionnel fait une application client /serv , c'est normale que que ça sera distinée aux deux pc le minimum un client et un serveur ,donc ma question comment il en peut faire sans avoir et sans savoir prealablemnt le (ip) de serveur ????
    par exemple : je veux etablir une application c/s . comment je programmerai cette application sans savoir le ip de pc dans lequel ma application sera installé ???
    pour une application c/s sur mon pc je trouve pas de souci pasque quand je programme le client je fait 192.168.1.3:3050:c\ma base ..
    j(ai besoin de vous aides!!! merci a vous!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 694
    Points : 953
    Points
    953
    Par défaut
    Citation Envoyé par heart100 Voir le message
    - quand un programmeur professionnel fait une application client /serv , c'est normale que que ça sera distinée aux deux pc le minimum un client et un serveur ,donc ma question comment il en peut faire sans avoir et sans savoir préalablement le (ip) de serveur ????
    Je pense qu'on ne peux deviner l'adresse du serveur il faut au préalable l'enregistrer dans un fichier de configuration lors de l'installation de l'application ou au lancement de l'application. (Dans un fichier .ini par exemple qui sera lu au lancement de l'application).
    Juste un exemple du fichier .ini
    [Parametre]
    addresseServeur = 192.168.1.3
    Port: 3050
    Pathbase: c\ma base

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 212
    Points : 81
    Points
    81
    Par défaut
    Merci mon ami mais comment l'enregistrer tanque je ne trouve aucun exemple ou un tutoriel qui explique le probleme !! jusq'à mtn j'arrive pas a comprendre

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 093
    Points : 41 075
    Points
    41 075
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    c'est plus une problématique Delphi qu'un problème Firebird !

    Comme devalender , je dirais que l'utilisation d'un fichier (INi ou base de registre , ou fichier XML ou ....) est la solution pour configurer l'accès des postes clients . Par contre , maintenant ,je préfère nettement utiliser les alias de Firebird (voir le fichier aliases.conf dans le répertoire de Firebird) à un chemin du style c:\base.fdb

    Pour en revenir à l'utilisation de Firebird avec Delphi , il faudrait déjà savoir avec quelle version et avec quels composants d'accès ?
    une recherche dans le forum delphi avec les mots clés "Firebird ini" amène un nombre considérable de réponses dont plusieurs
    ce post par exemple ressemble un peu a votre questionnement
    une FAQ aussi pour ADO

    enfin , un dernier exemple de code (extrait d'un tutoriel que je suis en train d'écrire ZEOSDBO + Firebird) qui extrait les information de connexion à partir d'un fichier .ini (de même nom que le programme)
    [Connexion]
    Hote=localhost
    Port=3050
    Protocole=firebird-2.5
    Utilisateur=SYSDBA
    mdp=masterkey
    base=c:\test.fdb
    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
    procedure TDataModule1.DataModuleCreate(Sender: TObject);
    var F : TIniFile;
    begin
    F:=TInifile.Create(ChangeFileExt(paramstr(0),'.INI'));
    try
      ZConnection1.Host:=F.ReadString('Connexion','Hote','localhost');
      ZConnection1.Port:=F.ReadInteger('Connexion','Port',0);
      ZConnection1.Protocol:=F.ReadString('Connexion','protocole','firebird-2.5');
      ZConnection1.Database:=F.ReadString('Connexion','base','c:\test.fdb');
    // cette partie est peu sécuritaire
      ZConnection1.User:=F.ReadString('Connexion','Utilisateur','SYSDBA');   
      ZConnection1.Password:=F.ReadString('Connexion','mdp','masterkey');
    finally
      F.Free;
    end;
    end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 212
    Points : 81
    Points
    81
    Par défaut
    ]merci sergio mais mes connaissance sur la programmation client/serveur peut etre un peu redimentaire , je vais essayer de explique ce que je connaisse a propos d'application c/s.
    si j'ai un pc de travaille(1) et un pc comme serveur (2) et un pc comme client (3) . je developpe dans le pc de travaille (1) une application client/serveur distiné aux pc(2) serveur et pc (3)client respectivement , je fait ça avec delphi7 et fairebird 2.5 et les composants interbase.
    les demarches :
    1)))) -ouvrir un dossier pour que l'application serveur soit dans lequel .
    - crier ma base avec isql avec line de commande et les table aussi (c:\base)
    - regler l'exeption de port :3050 dand le par-feu.
    -- - relier ma base avec delphi a travers interbase (ibconnection, ib table ..etc).
    -enregister tout et deployer l'application avec innosetup .
    2)))) ouvrir un dossier pour que l'application client soit dans lequel .
    - relier a travers l'accés interbase avec la base de serveur (127.0.0.1:c\base)
    ------------------------
    Voilà ça marche bien sur mon pc de travaille (1) et je peux aussi intaller l'application de serveur deja déployé sur le pc (2) .
    maintenant je parle de mon grand souci ,c'est comment intaller l'application de client sur le pc (3) tanque j'avais défini le chemin comme (127.0.0.1:c:\base) et j'ai pas défini le chemain selon (ip de pc(3):c:base)????????????????????????
    repondez moi svp selon mes connaissances .

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 093
    Points : 41 075
    Points
    41 075
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    reprenons les étapes :
    PC1 poste de développement
    PCS poste "serveur" sur lequel sera la Base de production
    PC2 poste client
    vous ne l'avez pas dit , mais je vais considérer que ces 3 postes sont en réseau local , avec des IP définies respectivement 192.168.1.10 (poste de dev dans un groupe différent), 192.168.0.10 serveur, 192.168.0.11 pc2

    sur PC1 vous aurez Firebird 2.5 en mode client serveur, Delphi 7, un dossier quelconque qui contiendra une base test .
    Aliases.conf
    base= c:\appli\base\mabasetest.fdb
    sur PCS vous aurez Firebird 2.5 en mode client serveur, port 3050 ouvert , un dossier 'base' (non partagé) qui contiendra la base de données de production
    et à l'occasion un répertoire contenant le/les programme(s) qui travaillent sur la base (et Dll,BPl etc ... associées évidemment) , pour en revenir aux alias , le aliases.conf aura le même nom d'alias que sur votre poste de dev ,mais pas forcément le même chemin
    Aliases.conf
    base= c:\base\baseprod.fdb
    je ne m'étends pas sur la manière de créer la base

    sur PC2 vous aurez Firebird 2.5 Client uniquement, et le dossier contenant le/les programme etc....

    Sur PC1 et PCS la chaine de connexion se fera via localhost (ou 127.0.0.1)
    sur PC2 elle se fera sur l'iP ou le nom de PCS , soit dans mon exemple 192.168.0.10 ou par le nom réseau du poste \\PCS
    c'est sur ce dernier point que vous vous êtes trompé

    Je remarque que vous voulez utiliser les composants Interbase , bien que cela va fonctionne nous sommes plusieurs sur ce forum à émettre l'avis de ne pas les utiliser . l'utilisation en était compréhensible avec les versions anciennes de Firebird (1.5) proche d'Interbase , mais prenez en considération le fait que plus le temps passe (et donc les versions) plus les 2 SGBD différent.

    Je vous engage , si vous n'êtes pas trop avancé , à considérer d'autres composants soit plus spécifiques comme UIB ou , à contrario plus généralistes ,je pense à ZEOSDBO pour rester dans les open sources (mais aussi UNIDAC , IBDAC etc ...) qui contrairement aux composants Interbase ont aussi bien évolué sur Interbase que Firebird .
    Sans faire de promotion quelconque mais vu que j'utilise ZEOSDBO et que je suis en train de faire un tutoriel sur ce dernier , je vous invite à faire un tour sur mon blog (le lien sous mon avatar "Billets dans le blog 2") pour vous faire une idée de cette bibliothèque de composant . Comme c'est indiqué , ce n'est encore qu'un brouillon, tout n'y est pas encore abordé (la tâche est longue, le brouillon sera remis à jour chaque Fin de week-end je pense et ce jusqu'à publication) malgré tout je pense que cela devrait vous aider (la partie connexion est bouclée quoique non corrigée).
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 212
    Points : 81
    Points
    81
    Par défaut
    ça y est j'ai bien pénétré le monde zeos qui apparait mieux que inrebase , merci d'avoir me dériger vers ces composant s , j'ai déja installé sur delphi7
    il me restent quelque truc à constater , ceux qui consernent la programmation client/serveur , j'espere trouver des tutos

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 093
    Points : 41 075
    Points
    41 075
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    La programmation client/serveur (soit 2 tiers) est surtout ne affaire de bon sens . Il faut simplement prendre en compte que tous les postes peuvent accéder aux mêmes données en même temps (par accéder je ne veux pas simplement dire lire mais aussi écrire) .

    Mon premier conseil : prenez le temps d'étudier les transactions et le niveau d'isolation . (je me fais de la pub , j'en parle dans mon tuto ZEOSDBO en cours de rédaction mais toutes ces informations se retrouvent dans les premiers manuels de delphi et/ou sur le net)

    concrètement :
    Évitez les DBGrid(s) et privilégiez la lecture/écriture d'une seule ligne de table (enregistrement)
    Si DBGrid il y a (les utilisateurs en sont très friands) privilégiez la lecture seule avec appel à un autre formulaire pour les modifications (voir cette discussion par exemple)
    Si DBGrid il doit y avoir et en lecture/écriture penché vous à fond sur mon premier conseil et sur les évènements de Firebird , encore de la pub ;-) mon article ici Bref faites un gros travail en amont sur la structure de la base de données
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Aide sur un programme Client Serveur
    Par clubmed01 dans le forum Linux
    Réponses: 33
    Dernier message: 29/05/2012, 10h22
  2. programme client serveur mode TCP/UDP en java
    Par ouss01 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 03/04/2009, 09h05
  3. Exemples de programmes client/serveur
    Par anakronox dans le forum Réseau
    Réponses: 11
    Dernier message: 02/12/2008, 14h27
  4. build.xml pour un programme client serveur
    Par donyas dans le forum ANT
    Réponses: 5
    Dernier message: 22/12/2006, 23h49
  5. architecture d'un programme client/serveur asynchrone (win)
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 05/09/2003, 23h59

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