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

Bases de données Delphi Discussion :

[SQLite] [Windows] la bonne dll à déployer et où la mettre


Sujet :

Bases de données Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    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 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut [SQLite] [Windows] la bonne dll à déployer et où la mettre
    Bonjour,

    Je viens de réaliser un programme utilisant SQLite pour utiliser des "tables temporaires". J'en suis à la phase déploiement et là, un doute me taraude
    Je sais que sous Androïd et sous OSX/IOS (merci de confirmer pour l'environnement APPLE) SQLite est installé, cependant il n'en ai pas de même pour Windows (enfin je crois).
    Bien sur sur mon pc de dev j'ai tellement d'outils (dont sqlitemanager) que évidemment sqlite est installé, du coup j'ai fait une petite recherche sur mon PC et surprise des sqlite*.dll j'en retrouve beaucoup (trop) et ce à divers emplacement, taille et dates et ce sans parler de la version 32 ou 64 bits !

    Quelle DLL choisir (sqlite,sqlite3) et où la mettre ?
    - celle proposé par Embarcadero
    - celle déployée par des tiers (plus de 10, j'en ai même une de Symantec)
    - l'officielle du site SQLite

    je pencherais pour la solution : celle d'Embarcadero (pour être sur que Firedac y soit "compatible") dans le répertoire du programme (pour éviter des écrasements à cause d'installation par des tiers) et ce malgré le fait qu'il y aura, du coup, forte chance d'avoir un "fichier en double"

    Qu'en pensez-vous ?
    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

  2. #2
    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 445
    Points
    28 445
    Par défaut
    je pense que la réponse est dans la question

    l'intérêt d'une DLL est cependant de pouvoir mettre à jour le moteur SQL sans recompiler le programme, et théoriquement une DLL plus récente devrait fonctionner avec l'application en corrigeant éventuellement au passage quelques bugs.

    SQLite3 c'est le nom de la DLL à partir de la version 3, SQLite c'est pour les versions antérieures, donc à priori il faut prendre un SQLite3.dll.

    et pour ce qui est de la version 32 ou 64 bits, elle dépend tout simplement de la version de ton application; il faut la même

    Cependant, je viens de regarder dans FireDAC j'ai un SQLite_x86.obj (et un SQLite_x64.obj en 64bits) qui sont liés statiquement par FireDAC.Phys.SQLiteCli, ce qui veux dire que le moteur SQLite est intégré directement dans l'application donc pas de DLL, mais pas de mise à jour de celle-ci possible non plus.

    En fait tout est expliqué ici
    http://docwiki.embarcadero.com/RADSt...Lite_(FireDAC)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Voir le lien suivant

    docwiki.../XE8/fr/...QLite...FireDAC

    FireDAC fournit des binaires SQLite 3.8.7.4. Il s'agit du mode par défaut pour les plates-formes spécifiées, aucun fichier ni action supplémentaire n'est requis. Veuillez noter que le cryptage de base de données SQLite est uniquement pris en charge pour la liaison statique.

    Donc tout dépend de ta version de Delphi.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    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 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    je pense que la réponse est dans la question
    C'était plus ou moins le but avoué
    Code ALWEBER : Sélectionner tout - Visualiser dans une fenêtre à part
    Donc tout dépend de ta version de Delphi.
    XE10 ou Seattle si on est plus anglophile

    J'avais en fait zappé le "Liaison Statique" possible et m'étais attardé uniquement sur une DLL à déployer

    Citation Envoyé par Paul TOTH
    et pour ce qui est de la version 32 ou 64 bits, elle dépend tout simplement de la version de ton application; il faut la même
    Ah, ce n'est pas aussi évident que ça ! Gros débat philosophique
    par exemple :
    - Delphi est 32 bits, les fichiers .HLP ont été fait pour un système 32 bits ont pourrait alors dire je vais installé WinHelp32 version 32 bits sur mon poste qui lui est 64 bits (Grosse erreur)
    - Mes programmes Delphi sont 32 bits mon poste est 64 bits , quelle version de Firebird client j'installe 32 ou 64 bits (j'ai la réponse )

    et pour preuve du nombre de sqlite.dll,sqlite3.dll que j'ai pu trouver beaucoup d'éditeurs préfèrent la solution : "je copie ma dll avec le programme", dommage il est difficile de voir la version (32 ou 64)
    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

  5. #5
    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 445
    Points
    28 445
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Ah, ce n'est pas aussi évident que ça ! Gros débat philosophique
    par exemple :
    - Delphi est 32 bits, les fichiers .HLP ont été fait pour un système 32 bits ont pourrait alors dire je vais installé WinHelp32 version 32 bits sur mon poste qui lui est 64 bits (Grosse erreur)
    Winhelp32.exe est un process externe à Delphi, il pourrait être 32 ou 64 bits ça ne changerait rien. Mais si c'était un Winhelp32.dll, il faudrait qu'il soit du même type que Delphi (bds.exe), donc 32bits.

    Au passage, si Delphi est une application 32bits, c'est pour permettre d'avoir un seul produit pour Windows 32 et 64bits, ce denier permettant d'exécuter des applications 32 bits.

    Citation Envoyé par SergioMaster Voir le message
    - Mes programmes Delphi sont 32 bits mon poste est 64 bits , quelle version de Firebird client j'installe 32 ou 64 bits (j'ai la réponse )
    même principe, le serveur est un process externe, il peut tourner en 32 ou 64 bits, ça importe peu.

    par contre le client GDS32.DLL (ou FBCLIENT.DLL), doit lui être en 32 bits pour une application 32 bits, quelque soit la version de Windows.

    NB: une application 64Bits ne pourra pas tourner sur un Windows 32bits, ce cas est donc facile.

    Citation Envoyé par SergioMaster Voir le message
    et pour preuve du nombre de sqlite.dll,sqlite3.dll que j'ai pu trouver beaucoup d'éditeurs préfèrent la solution : "je copie ma dll avec le programme", dommage il est difficile de voir la version (32 ou 64)
    c'est aussi car c'est une petite DLL, et qu'il est donc assez simple de la déployer avec l'application sans risquer un conflit de version avec une autre.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    je pencherais pour la solution : celle d'Embarcadero (pour être sur que Firedac y soit "compatible") dans le répertoire du programme (pour éviter des écrasements à cause d'installation par des tiers) et ce malgré le fait qu'il y aura, du coup, forte chance d'avoir un "fichier en double"
    Oui, je mettais aussi ma DLL SQLite3 dans le répertoire du programme... avant de passer aux unités SynSQLite3 et SynDBSQLite3 de Synopse ;-)

Discussions similaires

  1. Firebird Embedded sur un Windows XP Embedded : DLL no found
    Par narfight dans le forum Installation
    Réponses: 4
    Dernier message: 18/02/2008, 09h44
  2. [Windows] Inclure un .dll au PATH sans utiliser la console.
    Par jeanlouis_lecodeur dans le forum Général Java
    Réponses: 1
    Dernier message: 14/09/2007, 15h50
  3. [windows] charger une dll (avec classe)
    Par superpok dans le forum Windows
    Réponses: 11
    Dernier message: 09/09/2007, 11h15
  4. VB6 vers SQLite création de SQLiteVB.dll sous visual 2005
    Par lathenor dans le forum Visual C++
    Réponses: 3
    Dernier message: 21/05/2007, 11h39
  5. [Windows]utiliser une dll c# en java
    Par dude666 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 01/07/2005, 02h19

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