D2009 windows seven
j'ai juste réglé le répertoire de sortie dans les options du projet
André
D2009 windows seven
j'ai juste réglé le répertoire de sortie dans les options du projet
André
Je viens d'essayer la solution d'Andry (merci de m'aider au passage ).
Ca fonctionne très bien sur mon PC N°1 (PC de développement) avec Employee.fdb et avec ma BD (cahier.fdb), j'ai modifié CSEmbed.exe pour accéder à mes tables et pas de soucis.
Mais...
...ça ne marche pô sur un autre PC (là où je n'ai rien installé, ni Delphi, ni Firebird,...) en version Embedded. J'obtiens:
et si je place fbclient.dll dans le répertoire du programme j'obtiens:unavailable database
Unsuccessful execution caused by an unavailable ressource.
Error Code: 55
et si je place tous les fichiers du répertoire du didacticiel j'obtiens:Can't load library: fbclient.dll
Pourrais-tu me donner la liste des fichiers à copier pour que le didacticiel fonctionne sur n'importe quel PC ?[...]
CHARACTER SET WIN1252 is not defined
[...]
Salut,
Pour demontrer la portabilité de l'appli sur n'importe quelle PC (Firebird en mode embedeed), j'ai monter un Windows 7 x64 vierge sous vmware.
J'ai creer un utilisateur standard. Ensuite J'ai copier le dossier CSEMBED dans le dossier C:.
J'ai tester le programme avec l'option embeeded et ça fonctionne sans aucune modification du programme.
Alors ton problème me semble assez bizarre? En ce qui concerne le charset, je pense que tu peux la changer depuis le TUIBDatabase via la propriété Characterset.
Courage.
On progresse .....
Salut
Pour le problème de CharSet, je verrais plus l'absence de la dll fbintl.dll dans le sous-dossier intl.
A vérifier.
@+
bonjour
je crois que pour que l'exemple marche avec une autre base de données et soit portable, celle ci doit être rangée a une place bien précise.
Pour le mode embed, pour une place identique d'un pc à l'autre. j'ai choisi, dans le répertoire de Firebird et de l'appli comme l'exemple , mais ça pourrai fonctionné ailleurs. Cependant cette ailleurs peut semblé à la même place d'un PC à l'autre, alors que ce n'est pas le cas.
Le plus sur quand on range la bd ailleurs que le répertoire de l'appli, c'est de la rangée dans un répertoire d'application comme :...AppData\Roaming\MonAppli
AppData\Roaming est une variable d'environnement que l'application sera retrouver aisément d'un pc à l'autre.
Pour le serveur, c'est plus facile, le chemin sera juste un peu différent selon que le serveur est sous linux ou sous windows et ce sera la même pour tout les clients, sous réserve qu'ils accèdent au réseau
André
Heu..... fbclient.dll n'est PAS le serveur embedded !! A moins que tu ne l'aies renommé, mais j'ai plutôt l'impression que tu t'emmêles les pinceaux
Sur ton PC "là où je n'ai rien installé, ni Delphi, ni Firebird,..." tu devrais avoir un dossier MonAppli contenant :
- ton exécutable (et éventuels fichiers additionnels)
- ton fichier DB (cahier.fdb)
- le serveur FB embedded et tous les fichiers nécessaires (dont voici liste complète)
Et rien de plus !!
Avec bien sûr dans ton exécutable l'accès à la BD correctement configuré ; cad le paramétrage de TUIBDatabase. Je me cite :
Avec ça tu peux mettre MonAppli n'importe où et ça fonctionnera1 TUIBDatabase et ses propriétés DatabaseName (chemin de ta DB) et LibraryName (chemin vers fbclient.dll)
Juste dans les répertoires utilisateurs, pour les versions embarquées///
C:\Programme Files\... ils me semble que Microsoft déconseille le rangement de données d'application dans ce répertoire. Et pour le faire il faudra surement jouer avec l'UAC, à moins que le serveur Firebird n'ait les droits en d'écriture sur ces données dans ce répertoire....
Ok à condition de se faire un fichier de configuration machines par machines, quand aux versions usb de mon programme, j'ai mis un chemin relatif à mon exe.1 TUIBDatabase et ses propriétés DatabaseName (chemin de ta DB) et LibraryName (chemin vers fbclient.dll)
Nous parlions bien pour jackvpt de porter son application sur d'autres PC ?
Cordialement
André
Je n'ai jamais eu de souci jusqu'à aujd (Vista, Seven...).
Quant aux conseils de MS...
Voilà pourquoi dans le cas d'une base non partagée je la mets dans le dossier de l'appli, aisément récupérable par code (tout comme le dossier Temp windows, ainsi que tous les dossiers système).
Je ne sais pas s'il est prudent de mettre des infos de connexion à une BD dans un fichier de configuration ; perso je ne le fais pas tout est dans le code.
Bien sur
je n'ai pas le choix, je ne peux pas deviner à l'avance comment l'administrateur réseau réglera son serveur Firebird, ni même si il sera sous Windows ou Linux. La seule chose que je maitrise, c'est le répertoire utilisateur et le répertoire de l'application.Je ne sais pas s'il est prudent de mettre des infos de connexion à une BD dans un fichier de configuration
Pour ce qui est de mon réseau de travail, l'exe, firebird embed ( je n'ai pas besoin de déployer le client firebird poste par poste) et les fichiers de config se trouve dans un répertoire partagé du réseau. Le serveur est sur un pc Windows xp du réseau.
On clique sur l'exe de depuis n'importe quel PC du réseau et on démarre l'application multi poste multi user. Tout fonctionne depuis plusieurs années.
Cela fonctionnera pareil chez mes clients ou poste par poste, mais de toutes façon il faudra un administrateur réseau pour configurer la connexion.
cordialement
André
Me re-voilà après quelques jours de repos...
J'ai progressé et je sens que j'y suis presque mais...
Lorsque je crée une base de données avec IBExpert et que je lui indique fbembed.dll comme Library Name et ISO8859_1 en Charset j'obtiens:
alors que si je laisse gds32.dll, ça passe sans problème.connection error
bad parameters on attach or create database
CHARACTER SET ISO8859_1 is not defined.
J'ai fait d'autres essais mais je reviens toujours au même problème: fbembed et ISO8859_1 ne font pas bon ménage...
PS: mon fichier fbembed.dll est la version 2.5.0.26074 datée du 17/09/2010
est-ce que tous les fichiers a joindre avec fbEmbedded ainsi que les "bons" répertoires sont mis ?
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
Ça marche et ça marche pas...
A force de bidouiller et de créer et encore créer de nouvelles BD et d'essayer toutes vos astuces, je me suis perdu.
Quels sont les composants UIB que vous utilisez pour pouvoir accéder ET modifier une BD ? Le composant UIBDataSet étant en lecture seule, comment reliez-vous les UIBDatabase, UIBTransaction, UIBQuery au DataSource pour ensuite se servir d'une DBGrid et d'un DBNavigator pour visualiser et modifier la BD ???
Pour les UIBs , il "suffit" de regarder les exemples fournis avec les composants pour comprendre le principe .
Moi aussi au départ j'ai été arrêté par le "lecture seule" (mauvaises habitudes du BDE)
Mais cela mériterai plus un autre post que en écrire (j'allais mettre parler ) ici
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
Pardonne-moi Serge mais je me suis fait tous les exemples et rien ne m'a inspiré .Pour les UIBs , il "suffit" de regarder les exemples fournis avec les composants pour comprendre le principe
Quel(s) composant(s) utilises-tu pour écrire dans une BD ???
Je sens que je ne vais pas tarder à revenir à dbExpress .
A Y EST !!!!
Me voilà enfin au bout de mes peines...
Merci à tous car, grâce à tous vos conseils, j'ai réussi à assembler le puzzle.
Pour ceux que ça intéresse, je me permets de joindre un mini-tutoriel fait main qui vaut ce qu'il vaut mais qui permettra peut-être à d'autres de moins galérer que moi.
Merci encore à tous ceux qui ont participé à ce POST.
Bravo bon résumé, cela pourra servir à d'autres !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager