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

Delphi Discussion :

interbase sans deployer gds32.dll ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 148
    Par défaut interbase sans deployer gds32.dll ?
    Bonjour,

    j'utilise mariadb sur un remote-server pour mes données.
    pour connecter mes applications a la bd, j'utilise unidac qui effectue le travail sans déployé de dll spécifique , tout est dans l'exe.
    est ce possible avec interbase ? ou on est obligé de deployer gds32.dll sur le poste client ?
    on peut pas l'inclure dans l'exe et le charger dans la ram depuis l'exe ?

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 101
    Par défaut
    UniDac est une surcouche à MyDAC dans le cas de MariaDB et utilise la DLL "libmysql.dll" ou un mode TCP\IP direct voire même "libmysqld.dll" pour la version Embedded

    C'est identique pour Interbase et FireBird
    UniDac est une surcouche à IBDAC et utilise la DLL "gds32.dll" pour Interbase ou la DLL "fbclient.dll" pour FireBird

    Le plus simple pour éviter de faire un déploiement, ajouter la DLL en ressource du programme, extraire la ressource dans un fichier "gds32.dll" au lancement du programme avant la première utilisation de UniDAC, éventuellement la supprimer à la fermeture.
    un simple fichier RC pour inclure la DLL comme ressource, éventuellement un coup de Compression

    Voir si l'on peut définir un chemin complet dans TIBCConnection.ClientLibrary pour éventuellement mettre "gds32.dll" dans un répertoire temporaire au lieu d'être au même niveau que le programme ou évitez de l'installer dans System32 (PATH)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre émérite Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 191
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    UniDac est une surcouche à MyDAC dans le cas de MariaDB et utilise la DLL "libmysql.dll" ou un mode TCP\IP direct voire même "libmysqld.dll" pour la version Embedded

    C'est identique pour Interbase et FireBird
    UniDac est une surcouche à IBDAC et utilise la DLL "gds32.dll" pour Interbase ou la DLL "fbclient.dll" pour FireBird

    Le plus simple pour éviter de faire un déploiement, ajouter la DLL en ressource du programme, extraire la ressource dans un fichier "gds32.dll" au lancement du programme avant la première utilisation de UniDAC, éventuellement la supprimer à la fermeture.
    un simple fichier RC pour inclure la DLL comme ressource, éventuellement un coup de Compression
    Oui mais attention si l'exe est déployé sous C:\Program Files ou C:\Program Files (x86) cela va demander une élévation de privilèges et selon les autorisations de la session utilisateur ça peut poser problème...

    Perso je préfère embarquer mes DLL dans l'installeur et les placer à l'endroit de mon choix (souvent avec l'exe pour ne pas casser celles éventuellement présentes sur le système)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 148
    Par défaut
    avec unidac - connexion direct ? ( on déploie rien ), je ne sais pas comment devart gère ca, mais ca fonctionne.

    creation - connexion - query

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    e_pmysql : tmysqluniprovider;
    e_unic : tuniconnection;
    e_query : tuniquery;
     
    e_pmysql := tmysqluniprovider.Create(nil);
    e_unic := tuniconnection.Create(e_pmysql);
    e_unic.ProviderName := 'MySQL';
    e_unic.ConnectString := 'Provider Name=MySQL';
    e_query := tuniquery.Create(e_unic);
    e_query.Connection := e_unic;


    application-client-websocket(ecegece)-scripter(tmssofware)

    j'envois un script a application-client a travers le websocket -> update + suvegarde données dans la db

    et cela sans installer quoique ce soit sur poste client.

    je voulais essayer interbase. ( il parait q'elle est moins lourde en ressources que mariadb )

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 663
    Billets dans le blog
    65
    Par défaut
    Unidac a besoin des dlls pour Interbase, Firebird et MongoDB cf. le schema https://www.devart.com/dac.html

    Citation Envoyé par Devart
    Direct Mode
    Allows your application to work with Oracle, SQL Server, MySQL, PostgreSQL, SQLite, SQL Azure, Amazon Redshift, Adaptive Server Enterprise, DBF, NexusDB directly either via TCP/IP without involving a DB Client library or using static linking.

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    j'ai moi même créé un client MySQL directement en Pascal qui n'utilise donc pas la DLL libmysql.dll, mais je ne connais pas de version pour Firebird...j'avais commencé il y a quelques temps à regarder cela mais je n'ai pas trouvé le temps ni l'envie de poursuivre

    la seule alternative serait de placer sur le serveur un frontale IP que le client interroge pour accéder de façon indirecte à la base, c'est alors le serveur qui fait la connexion BDD et qui a besoin de GDS32...ce que fait DataSnap par exemple

    ou encore faire un WebService d'accès aux données, mais ça implique pas mal de changements dans le code en général.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 101
    Par défaut
    Autant partir sur FireBird ... mais passer de MariaDB\MySQL à InterBase, ça va faire un choc.

    Encore une fois, UniDac est une surcouche sur MyDAC et IBDAC, hors si MyDAC fourni une version sans dépendance, ce n'est pas le cas de IBDAC.


    Sinon votre explication de script, je n'ai pas pigé grand chose

    Votre application est-elle multi-tiers ?
    un client Web + un serveur Web + un Serveur Delphi + un serveur DB ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 663
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Autant partir sur FireBird ... mais passer de MariaDB\MySQL à InterBase, ça va faire un choc
    je suis assez d'accord
    j'ai une license interbase server 2020,
    moui ben on en a tous une de devellopement ou ça se complique $$$$ c'est quand il faut les licences postes client

  9. #9
    Membre émérite Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 191
    Par défaut
    Citation Envoyé par mteirek_m Voir le message
    avec unidac - connexion direct ? ( on déploie rien ), je ne sais pas comment devart gère ca, mais ca fonctionne.

    creation - connexion - query

    application-client-websocket(ecegece)-scripter(tmssofware)

    j'envois un script a application-client a travers le websocket -> update + suvegarde données dans la db

    et cela sans installer quoique ce soit sur poste client.

    je voulais essayer interbase. ( il parait q'elle est moins lourde en ressources que mariadb )
    Lance une recherche des fichiers lib*.dll, libmaria*.dll sur le disque C:

    Tu vas surement trouver l'un des deux (ou les deux) dans un répertoire du PATH (souvent C:\Windows\System32 ou C:\Windows\SysWOW64\)

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 148
    Par défaut
    Citation Envoyé par sergio_is_back Voir le message
    Lance une recherche des fichiers lib*.dll, libmaria*.dll sur le disque C:

    Tu vas surement trouver l'un des deux (ou les deux) dans un répertoire du PATH (souvent C:\Windows\System32 ou C:\Windows\SysWOW64\)

    j'ai une license interbase server 2020,
    j'ai les dll nécessaires.
    c'est juste que j'explore la faisabilité de passer a interbase. ( sans modifier l'interconnexion des différentes applis )
    actuellement la ( connexion + manipulation des données ) sur mariadb est encapsulé dans une classe delphi, elle même ajouté au scripter. ( et ca fonctionne a merveille ).

Discussions similaires

  1. fbclient.dll o gds32.dll pour win CE
    Par endaco dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 01/10/2011, 01h39
  2. Emplacement de gds32.dll
    Par fifi_dz dans le forum Installation
    Réponses: 3
    Dernier message: 08/02/2011, 14h14
  3. Deployer des DLL
    Par olbi dans le forum VB.NET
    Réponses: 2
    Dernier message: 01/05/2009, 00h54
  4. Réponses: 8
    Dernier message: 13/02/2009, 09h11
  5. gds32.dll ou fbclient.dll
    Par lio33 dans le forum Installation
    Réponses: 6
    Dernier message: 13/01/2006, 18h49

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