Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Installation
Installation Forum d'entraide sur l'installation et la configuration du serveur Firebird
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 13/12/2004, 22h47   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2002
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 34
Points : 13
Points : 13
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!
lancelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 10h24   #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
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)
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 14h14   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2002
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 34
Points : 13
Points : 13
Pardonne ma curiosite mais pourquoi faut il renommer la DLL pour deployer l'application?
lancelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 15h32   #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
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.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 15h40   #5
Membre du Club
 
Avatar de jibe74
 
Inscription : avril 2004
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 121
Points : 48
Points : 48
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.
jibe74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 15h51   #6
Candidat au titre de Membre du Club
 
Inscription : avril 2002
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 34
Points : 13
Points : 13
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?
lancelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 15h59   #7
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 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 ?
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 16h06   #8
Membre confirmé
 
Inscription : juin 2002
Messages : 240
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 240
Points : 225
Points : 225
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
vanquish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 16h07   #9
Candidat au titre de Membre du Club
 
Inscription : avril 2002
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 34
Points : 13
Points : 13
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!
lancelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 16h11   #10
Candidat au titre de Membre du Club
 
Inscription : avril 2002
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 34
Points : 13
Points : 13
Citation:
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....
lancelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 16h28   #11
Membre confirmé
 
Inscription : juin 2002
Messages : 240
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 240
Points : 225
Points : 225
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 :
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
vanquish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 16h32   #12
Membre confirmé
 
Inscription : juin 2002
Messages : 240
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 240
Points : 225
Points : 225
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
vanquish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 16h33   #13
Candidat au titre de Membre du Club
 
Inscription : avril 2002
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 34
Points : 13
Points : 13
Oahhhh Merci Vanquish, je teste ca des ce soir! 8)
lancelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 16h37   #14
Candidat au titre de Membre du Club
 
Inscription : avril 2002
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 34
Points : 13
Points : 13
Citation:
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?
lancelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 16h38   #15
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
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.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 16h43   #16
Candidat au titre de Membre du Club
 
Inscription : avril 2002
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 34
Points : 13
Points : 13
Citation:
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?
lancelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 17h22   #17
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
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
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 17h43   #18
Candidat au titre de Membre du Club
 
Inscription : avril 2002
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 34
Points : 13
Points : 13
Citation:
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!
lancelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2004, 18h57   #19
Membre confirmé
 
Inscription : juin 2002
Messages : 240
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 240
Points : 225
Points : 225
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
vanquish 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 17h34.


 
 
 
 
Partenaires

Hébergement Web