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

EDI Delphi Discussion :

[XE8] découverte, problème avec firedac


Sujet :

EDI Delphi

  1. #1
    Membre actif

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut [XE8] découverte, problème avec firedac
    Bjr
    Je découvre Rad Studio XE8 et mes premiers essais portent sur la connectivité à Firebird (local).
    Les outils Firedac qui me paraissent nécessaires sont :
    TFDConnection;
    TFDTransaction;
    TFDTable;
    pour un premier test.
    Je commence par recevoir un message disant que FBCLIENT.DLL doit se trouver soit dans windows/system32 soit dans le répertoire de l’exécutable.
    Même en copiant ce fichier à côté de l'exe le message apparait encore de temps en temps. Si je le copie dans windows/system32 ça semble régler ce problème mais un deuxième apparait.
    Object Factory for class ... is missign. Pour recenser le composant [TFDGUIxWaitCursor] vous pouvez le déposer dans votre projet
    .

    Si j'en crois la doc embarcadero la solution semble différente :
    Object factory for class {3E9B315B-F456-4175-A864-B2573C4A2201} missing.
    To register it, you can drop component [TFDGUIxWaitCursor] into your project
    Mais retirer le composant [TFDGUIxWaitCursor] que je n'ai pas inclus dans mon projet je ne vois pas...

    Cela se produit au moment de l'ouverture de la table.

    Concernant fbclient.dll je me demande comment s'y prenait Delphi 7 ou BC++ 6 qui semblaient ne pas avoir besoin de cette DLL (réclamée en revanche par ISQL).

    Par ailleurs la palette de composants ne contient pas de contrôle TDBEdit ou autre VCL.DBCtrls. Si l'installation de XE8 s'est déroulée normalement ce qui semble être le cas ces VCL ne devraient ils pas être disponibles puisqu'ils semblent bien exister encore sous ce nom.

    Si je progresse je vous tiens au courant...

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    mes premiers essais portent sur la connectivité à Firebird (local).
    ces premiers essais sont en VCL ou FMX ?
    Je commence par recevoir un message disant que FBCLIENT.DLL doit se trouver soit dans windows/system32 soit dans le répertoire de l’exécutable.
    En cas de système 64 bits et donc à fortiori d'une version Firebird 64 bits, pour que le programme de debug fonctionne correctement il faut effectivement (en tout cas c'est mieux) avoir une copie de FBClient.dll dans System32 (pour la version 64 bits) et dans SYSWOW64 (pour la 32 bits) ce que fait une installation standard de Firebird (pour peu que la case copie de la bibliothèque fbclient.... soit cochée) attention à ne pas mélanger les 2 bibliothèques !!

    Pour ce qui est du TFDGUIxWaitCursor attention à ce que ce soit le bon "fournisseur" qui soit indiqué : la propriété Provider doit être bien renseigné FMX,Console ou Forms

    Concernant fbclient.dll je me demande comment s'y prenait Delphi 7 ou BC++ 6 qui semblaient ne pas avoir besoin de cette DLL
    parce que tout d'abord l'application ne pouvait être que 32 bits et qu'ensuite à défaut de fbclient.dll c'était souvent gds32.dll qui était utilisé
    à noter également que l'on peu spécifier l'emplacement de la bibliothèque au niveau du TFDPhysFBDriverlink

    Par ailleurs la palette de composants ne contient pas de contrôle TDBEdit ou autre VCL.DBCtrls.
    eh oui s'il s'agit de FMX, aucun contrôle orienté données n'existe, tout les contrôles sont liès aux données via les Livebindings
    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

  3. #3
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Citation Envoyé par frantzgac Voir le message
    Si j'en crois la doc embarcadero la solution semble différente : (...)

    Mais retirer le composant [TFDGUIxWaitCursor] que je n'ai pas inclus dans mon projet je ne vois pas...
    Je pense que la traduction de
    you can drop component [TFDGUIxWaitCursor] into your project
    serait plutot "vous pouvez déposer le composant [...] dans votre projet", et par la ils entendent ajouter, et non pas retirer ... enfin je pense

  4. #4
    Membre actif

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    bonjour
    merci de vos réponses.
    Je suis en Win 8.1 32 bits.

    Effectivement en ouvrant un projet Delphi VCL cela va mieux. Ou plus exactement le problème se déplace. j'ai maintenant des ennuis de connectivités à mes bases Firebird assez incohérents.

    Que ce soit avec RAD XE8 et les outifs FireDAC, avec une application Delphi 7 compilée, une application BC++, avec l'éditeur Delphi 7 en mode développement j'ai toujours le message "unavailable database" à la connexion.

    En revanche une application BC6 et une seule accède sans difficulté à sa base FB.

    Je précise que j'ai désinstallé Interbase XE7 pour éviter les conflits de port et installé Firebird 2.1 pour rester compatible avec des applications commercialisées.

  5. #5
    Membre actif

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    j'ai poursuivi des tests sur un PC équipé de Win 8 sans RAD Studio XE8

    j'ai testé :

    une application de test accédant à une base FB développée avec Rad Studio XE8 (composants TIB*)
    une application ancienne accédant à une base FB développée avec Delphi 7
    la même application recompilée en XE8

    Elles fonctionnent toutes

    Cela semble clairement indiquer que le contexte a été modifié par XE8 sur le PC d'origine.

  6. #6
    Membre actif

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Fin du sujet.
    En plaçant GDS32.dll dans le répertoire du programme le problème disparait.
    Si quelqu'un peut m'expliquer pourquoi XE8 rend cela nécessaire ?

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    là il y a quelque chose qui m'échappe ! si tu utilises Firedac et Firebird normalement tu n'as pas besoin de la GDS32.dll (qui a été changée par l'installation d'Interbase). Maintenant il apparait que dans la liste des composants cités je ne vois pas le TFDPhysFBDriverlink nécessaire normalement à la connexion avec une base Firebird cela voudrait-il suggérer que c'est le driver IB au lieu de FB qui est indiqué dans les propriétés de la connexion ?
    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

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par frantzgac Voir le message
    Fin du sujet.
    En plaçant GDS32.dll dans le répertoire du programme le problème disparait.
    Si quelqu'un peut m'expliquer pourquoi XE8 rend cela nécessaire ?
    regarde les informations de la DLL, Firebird utilise normalement FBCLIENT.DLL, mais pour des questions de facilité de déploiement par rapport à Interbase, la DLL peut être nommé GDS32.DLL, c'est une case à cocher lors de l'installation de Firebird.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Membre actif

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    là il y a quelque chose qui m'échappe ! si tu utilises Firedac et Firebird normalement tu n'as pas besoin de la GDS32.dll (qui a été changée par l'installation d'Interbase). Maintenant il apparait que dans la liste des composants cités je ne vois pas le TFDPhysFBDriverlink nécessaire normalement à la connexion avec une base Firebird cela voudrait-il suggérer que c'est le driver IB au lieu de FB qui est indiqué dans les propriétés de la connexion ?
    Mes premiers essais ont été fait avec Firedac en effet. Mais quand j'ai compris que je ne construisais pas une application VCL grâce à tes réponses j'ai repris mes habitudes (TIBdatabase ...) pour accéder à mes bases Firebird comme le font toutes mes anciennes applications. C'est par cette méthode et en mettant le GDS32.dll construit par l'installeur de Firebird que j'ai réussi à faire fonctionner mes applications. Avant c'était vraisemblablement le GDS32.dll d'interbase (windows\system32) qui était appelé (ce qui a été vérifié à l'aide de process explorer).

    Cela dit depuis cette conclusion positive pour le projet utilisant les composants IB j'ai repris mon projet (VCL) accédant par FireDac à la base FB et j'y suis parvenu en plaçant sur la fiche les composants
    TFDConnection;
    TFDTransaction;
    TFDTable;
    TFDGUIxWaitCursor

    J'ai essayé avec et sans TFDPhysFBDriverLink (et en garnissant la propriété VendorLib) il semble que cela soit indifférent. Cela présente sans doute l'avantage de diriger formellement la recherche de la DLL dans des environnements incertains.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WS 2008] Problème avec la découverte de réseaux
    Par mizuka dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 09/04/2017, 22h47
  2. [XE7][XE8] problème avec le debugger (windows 8)
    Par SergioMaster dans le forum EDI
    Réponses: 1
    Dernier message: 07/05/2015, 14h22
  3. [XE5] Problème de lecture de blob MySQL avec FireDAC
    Par Achillée dans le forum Bases de données
    Réponses: 0
    Dernier message: 17/03/2015, 13h19
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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