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

Installation Firebird Discussion :

Deploiement d'une base Firebird?


Sujet :

Installation Firebird

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 34
    Points : 25
    Points
    25
    Par défaut Deploiement d'une base Firebird?
    Salut a tous,

    Je viens de telecharger Firebird 1.5 parce que j'ai besoin d'une DB robuste et facile a deployer. J'ai choisi de le tester parce qu'un grand nombre de posts sur ce forum en dise du bien... donc pkoi pas! 8)
    Mais voila ma db s'integrerait dans une application que je suis en train de developper et se deploierait depuis un setup, truc tout bete... mais j'arrive pas a trouver la procedure de deploiement d'une db firebird!!! J'ai lu tout plein de commentaire a droite et a gauche sur Embedded Server mais comment l'utiliser?
    J'ai probablement pas chercher au bon endroit... Si kelkun veut bien m'indiquer une bonne source d'information ca serait sympa!

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Il y a très peux de doc en effet sur la partie embedded de firebird. C'est une des nouveautées de la version 1.5.

    Mais il me semble que sont déploiement ne nécéssite que la copie d'une DLL dans le répertoire de l'application. (Embedded.dll à renommer en GDS32.DLL)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Pardonne ma curiosite mais pourquoi faut il renommer la DLL pour deployer l'application?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    La plupart des drivers permettant un accès à Interbase en natif utilise les API contenue dans la GDS32.DLL.

    Embedded.dll contient les mêmes API que dans GDS32.DLL à la différence qu'il n'envoient pas d'ordres à un serveur mais les traite directement en locale.

    Si vous utilisez un driver dans lequel vous pouvez préciser le nom de la librairie cliente d'interbase alors il est inutile de la renommer.

    Mais par exemple pour les IBX ceux-ci font appel aux API contenues dans GDS32.DLL donc il va chercher cette DLL, s'il ne la trouve pas votre programme ne marchera pas.

  5. #5
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Bonjour,

    Bien que nouvel utilisateur de Firebird, je vais tenter une réponse, en espérant ne pas raconter de bêtises... Merci à Barbibulle ou un autre de rectifier si besoin !

    La base Firebird étant une base client/serveur, un serveur résident est lancé, et une dll permet les échanges entre le programme client et le serveur.

    Pour une application "stand alone" qui remplit à la fois la fonction de client et de serveur, il faut donc une dll qui assure les deux fonctions. L'application faisant normalement appel à gds32.dll comme cliente firebird, il faut en fait une dll de même nom qui implémente à la fois les fonctions de client et de serveur. D'où nécessité de renommer, la machine de développement comportant normalement déjà une gds32.dll cliente seulement.

    [EDIT]
    Barbibulle est plus rapide

    Bon, je n'avais pas trop raconté de bêtises, apparemment !
    [/EDIT]
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Ok donc si je vous suis bien, dans le cas d'une application asp.net, pour le deploiement je cree un dossier ou je place mes pages asp plus la db Firebird et je copie GDS32.dll (Embedded.dll renomme) plus ma dll ado.net pour Firedbird dans le dossier Windows <system> et tout devrait bien se passer?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par lancelot69
    Ok donc si je vous suis bien, dans le cas d'une application asp.net, pour le deploiement je cree un dossier ou je place mes pages asp plus la db Firebird et je copie GDS32.dll (Embedded.dll renomme) plus ma dll ado.net pour Firedbird dans le dossier Windows <system> et tout devrait bien se passer?
    Sauf si sur votre poste il y a Interbase client d'installé.

    Vous parlez d'ASP.NET, et ca me fait un peu peur, vous êtes certain que c'est la version embedded qu'il vous faut ?

  8. #8
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 024
    Points
    2 024
    Par défaut
    Citation Envoyé par Barbibulle
    Mais il me semble que sont déploiement ne nécéssite que la copie d'une DLL dans le répertoire de l'application. (Embedded.dll à renommer en GDS32.DLL)
    J'ai fait quelques essais et ce n'est pas aussi simple.
    Imposible de travailler avec une base basé sur un CHARSET prècis.
    Le pilote refuse le paramètre du type : codepage=WIN1252

    Si on omet le paramètre: un SELECT * FROM MATABLE
    va fonctionner. Mais dès que l'on met une clause WHERE ou ORDER c'est fini.

    Il semble qu'en ajoutant la fbintl.dll (issue de distribution normale du serveur) certains ai réglé le problème.
    Perso j'ai réglé en ne précisant pas de CHARSET au moment de la création de la base - mais ce n'est pas sans conséquence.
    --
    vanquish

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    A priori Interbase client ne sera pas installe sur le poste cible.
    Et je pensais a la version Embedded parce que j'aimerais avoir kkchose de simple a installer. La personne qui va deployer ma web application ne sera probablement pas tres tres skilled en gestion de database et pour cette raison je voulais m'orienter vers quelque chose de plus "Desktop database" type ou il y a un fichier db + une dll pour le tout. En plus ils ont un processus de backup tous les soirs, donc il faut une database qui soit facile a localiser et a sauvegarder. (Par contre j'ai un doute sur le faite de restorer la database juste par xcopy le fichier backup dans le cas d'un crash...)

    Mais si tu penses que je fais erreur, je serais heureux que tu me rediriges vers la solution la plus adequate!

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Il semble qu'en ajoutant la fbintl.dll (issue de distribution normale du serveur) certains ai réglé le problème.
    Perso j'ai réglé en ne précisant pas de CHARSET au moment de la création de la base - mais ce n'est pas sans conséquence.
    J'avoue que je prefererais tester la version fbintl.dll plutot que de ne pas preciser de CHARSET, pour la simple raison que je ne suis pas bien sur de ce qu'est un CHARSET.... Je travaille avec les db seulement depuis les applications que je developpe et en generale je connais juste le minimum pour creer ma base et y acceder en lecture ecriture....

  11. #11
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 024
    Points
    2 024
    Par défaut
    Citation Envoyé par vanquish
    Il semble qu'en ajoutant la fbintl.dll (issue de distribution normale du serveur) certains ai réglé le problème.
    Je viens de comprendre comment ils ont fait (d'où l'intérêt de lire les readme livré avec les produits) - et en plus ça marche.

    En plus du fbembed.dll éventuellement renommé en gds32.dll (voir fbclient.dll tout dépend avec quoi on se connecte), il faut créer un sous dossier "intl" et y placer fbintl.dll

    On peut aussi créer un sous dossier "udf" qui va contenir fbudf.dll
    (certaines fonctions SQL sont en fait des UDF standard)

    Soit pour une installation Firebird 1.5 embedded complète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    C:\MonApp\MonApp.exe
    C:\MonApp\gds32.dll   (fbembed.dll renommé)
    C:\MonApp\ib_utils.dll
    C:\MonApp\firebird.conf
    C:\MonApp\firebird.msg
    C:\MonApp\intl\fbintl.dll
    C:\MonApp\udf\fbudf.dll
    --
    vanquish

  12. #12
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 024
    Points
    2 024
    Par défaut
    Citation Envoyé par lancelot69
    J'avoue que je prefererais tester la version fbintl.dll plutot que de ne pas preciser de CHARSET(
    C'est limite normal puisque le bon terme est CHARACTER SET (ou code page).
    En gros cela prècise comment vont être codifier les caractères accentués.
    Ca peut avoir de l'importance sur les instruction de tris de façon à ce que l'ordre alphabétique soit du type

    aàbcdeéèfgh ...
    et non
    abc..xyzàéè
    --
    vanquish

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Oahhhh Merci Vanquish, je teste ca des ce soir! 8)

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    C'est limite normal puisque le bon terme est CHARACTER SET (ou code page).
    En gros cela prècise comment vont être codifier les caractères accentués.
    Ca peut avoir de l'importance sur les instruction de tris de façon à ce que l'ordre alphabétique soit du type

    aàbcdeéèfgh ...
    et non
    abc..xyzàéè
    De suite c'est plus clair, donc si pas de character set l'ordre par defaut est par code ASCII croissant!?

    Et juste pour information comment tu fais pour ne pas preciser de character set a l'installation?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    La version Embedded de firebird, c'est une nouveauté, et elle comporte en effet quelques inconvéniants / limitations.

    Elle est à reserver je pense pour des cas bien particuliers comme par exemple une application qui aurait besoin de pouvoir s'exécutée sur un CDROM (programme et base de données de type présentation catalogue) sans devoir installer quoique ce soit sur les poste voulant consulter le catalogue.

    Pour ce qui est le l'installation de firebird, c'est probablement une des plus simple de tous les SGBD. Elle peut etre faite de diverses manières :
    En utilisant le programme d'installation standard. Mais aussi par programmation (des composants dans Delphi/BC++ permettent une installation serveur/client).
    Mais aussi il existe des scripts d'installation silencieuse compatibles avec la plupart des installateurs.

    Je vous conseil donc plutot de vous orienter vers une tel solution.
    1-Vous n'allez pas "essuyer les platres" de la version Embedded qui est encore jeune.
    2-Vous ne vous limiterez pas et votre applicatoin restera ouverte très facilement vers du multi-poste et/ou base déportée sur un serveur.


    Par contre si vous voulez bénéficier pleinnement d'une base de données client/serveur (et ca c'est valable quelque soit le SGBD) je vous conseil d'approfondir vos connaissances dans le domaine.
    On trouve hélas pas mal d'applications qui utilisent un SGBD avec des tables comme si c'était juste des fichiers... C'est bien dommage et surtout on perd une grosse partie de l'interret d'utiliser un SGBD.

    Pour ce qui est du CHARSET c'est ce qui permet de dire au SGBD quel type d'alphabet les colonnes chaine de caractères peuvent contenir.

    Par exemple en anglais il n'y a pas d'accent. Le charset va également déterminer la manière de trier les donnnées (lorsqu'on demande un tri).
    Par exemple si on doit faire une différence entre les majuscules/minuscules, et les accents.

    On peux évidemment s'en passer par exemple en enregistrant toujours les chaines en majuscule et donc sans accent. Bien entendu celà implique d'obliger les saisie en majuscule et les restitutions se font également en majuscule. C'est moins beau mais ca marche.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Mais aussi il existe des scripts d'installation silencieuse compatibles avec la plupart des installateurs.

    Je vous conseil donc plutot de vous orienter vers une tel solution.
    1-Vous n'allez pas "essuyer les platres" de la version Embedded qui est encore jeune.
    2-Vous ne vous limiterez pas et votre applicatoin restera ouverte très facilement vers du multi-poste et/ou base déportée sur un serveur.
    Mais dans mon cas je dois proposer un moyen de sauvegarder et restorer la DB de maniere tres simple pour l'utilisateur (genre copie de fichier)... Est ce que c'est toujours possible dans ce cas?

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    La copie de fichier n'est pas recommandée même si ca va marcher. Pour plusieurs raisons :
    1- S'il y a des connexions à la base pendant la copie... Attention...
    2- La base n'est jamais nettoyée
    3- La sauvegarde sera grosse (la taille de la base)

    Pourquoi un backup :

    1- On peut le faire alors que des personnes travaillent sur la base (c'est une des spécificitées et force de Firebird/Interbase)
    2- Permet de nettoyer un peu la base en même temps.
    3- Le backup est plus petit de la base donc plus facilement archivable ou zippable.

    Le backup n'est pas non plus une opération complexe, il peut etre fait par programmation également et donc se résumer à un clique sur un bouton de votre application.
    Sinon il existe même un logiciel open source qui fait des backups automatiquement à période déterminée.

    Pour ce qui est de la restoration là les deux méthodes se vallent car il faut impérativement que personne ne se connecte (ou soit connecté) sur la base pendant cette opération.
    Par contre le retore créera une base bien netoyée, plus saine et mieux optimisée.

    Un bon backup/restore de temps en temps fait du bien à la base.

    De plus si vous êtes capable de lancer des lignes commandes depuis votre appli, vous pouvez plutot que d'executer un xcopy lancer les utilitaires en ligne de commande en passant en paramétre tout ce qu'il faut évitant à vos utilisateur de répondre à des questions qu'il ne comprendrait peut etre pas.

    Bref là encore mon conseil c'est d'utiliser plutot les outils de backup/restore de firebird plutot que la copie de fichier

  18. #18
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Bref là encore mon conseil c'est d'utiliser plutot les outils de backup/restore de firebird plutot que la copie de fichier
    Quand tu dis utilitaires de firebird tu entends par la gbak et tous les autres outils du bin :

    Donc le mieux ca serait un appelle avec ligne de commande... mais je sais pas si l'administrateur client laissera assez de droits au compte ASP.Net pour pouvoir executer en ligne de commande, ce qui voudrait dire que je dois fournir un utilitaire type Windows Form pour faire le backup/restore.

    Ma foi c'est tres faisable surtout si je peux beneficier d'une base de meilleure qualite qu'Access...

    Il me reste plus qu'a trouver des exemples de connexion a la base depuis ADO.Net et je suis bon pour faire des tests.

    Je reviendrai donner les resultats de mon experience ASP.Net / Firebird, en tout cas merci Barbibulle, merci Vanquish!

  19. #19
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 024
    Points
    2 024
    Par défaut
    Citation Envoyé par lancelot69
    Et juste pour information comment tu fais pour ne pas preciser de character set a l'installation?
    Ce n'est pas à l'installtion du produit, mais c'est un paramètre de ta requête de création de base de données.
    Il faut refournir ce paramètre (le même de préference) au moment ou tu te connecte à la base.

    Pour le reste je suis assez d'accord avec barbibulle, même si je suis plutôt confiant quant à la stabilité (la version embedded cela reste Firebird à 99.9%) et un programme écrit sur la base de la vesrion embedded reste très ouvert puisque la version embedded c'est quand même Firebird.
    On déploie fbembed.dll à la place de fbclient.dll, mais ton application peut rester la même à la ligne de code près.

    Donc tout dépend de ce que tu fais exactement.
    Un petit freeware qui a besoin de gèrer quelque tables. Tu ne vas peut-être pas obliger les gens qui vont tester ton produit à installer un serveur SQL (aussi léger fut-il).

    Mais si c'est plus lourd, tu n'as pas grand chose à perdre et tout à gagner à utiliser la version complète de Firebird.
    --
    vanquish

Discussions similaires

  1. créer une base firebird
    Par richard038 dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/11/2005, 09h08
  2. utilisation d'une base Firebird en mode server
    Par richard038 dans le forum Bases de données
    Réponses: 11
    Dernier message: 31/10/2005, 18h47
  3. problème de connexion avec une base firebird
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2005, 11h40
  4. liste objet d'une base firebird
    Par fbalien dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/11/2004, 22h40
  5. Refus d'accès à une base Firebird
    Par severine dans le forum Installation
    Réponses: 18
    Dernier message: 04/06/2003, 16h03

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