Je me demande si nous pouvions intégrer la bibliothèque SQLite dans un fichier exécutable DELPHI et que nous pouvons déployer notre application en tant que fichier unique .exe sans fichier DLL SQLite. P>
L'intégré ne conserve pas le fichier DLL SQLITE dans la ressource, mais un lien vers le fichier exécutable DELPHI. p>
6 Réponses :
Je n'ai pas essayé cette composante, mais je prévois à l'avenir Inspiration DELPHI - DISQLITE3 P>
Il y a aussi Synopse OpenSource SQLite3 Cadre P>
Une version gratuite est disponible trop p>
Notre SQLite3 CLASSES DÉDIÉS peut maintenant être facilement utilisé en dehors du cadre de notre cadre Orm. Ils peuvent également être remplacés par un autre moteur de base de données, si nécessaire (via OLEDB ou accès oracle direct).
pilote SQLite Anydac SQLite a un moteur SQLite lié statillé. C'est une bibliothèque commerciale, bien que. Ils ont un article à propos de anydac et sqlite. p>
Delphi peut relier des fichiers .OBJ, ainsi que si vous les avez disponibles (ou code source pour les compiler), vous pouvez les relier à un exécutable. Mais vous ne pouvez pas à cela avec la DLL SQLLITE. P>
IIRC DISQLITE 3 Est-ce que c'est exactement cela, vérifiez-le. P>
Très facile à dire, mais souvent très difficile à faire. Vous devez également fournir les fonctions d'exécution C aussi et pour une grande bibliothèque pouvant être un diable d'un emploi. De plus, vous devez faire face à des problèmes de commande étranges lors de la liaison des fichiers .OBJ: Stackoverflow.com/Questtions/4638186/...
Vous pouvez télécharger la SQLite Open Source et la compiler dans n'importe quel environnement pouvant compiler le code V vanilla C. Ce n'est pas particulièrement difficile. P>
Nous avons compilé SQLite3 avec le compilateur de ligne de commande GRATUIT de Borland et le fichier Obj résultant que nous avons lié à DELPHI avec {$ link 'objs \ sqlite3.obj'} et écrit les emballages Pascal pour les fonctions dont nous avions besoin. p>
Il y avait un problème de résolution de certaines fonctions de la bibliothèque Standard C lors de la liaison, mais nous les avons ré-implémentées dans Delphi. P>
C'est exactement ce que nous avons fait avec notre Open Source Reliure de SQLite3 . Vous avez donc tout le code source à portée de main - en particulier les bibliothèques standards équivalences C dans le plus pur Code Delphi (ce n'est pas si évident).
J'ai eu le même problème et c'est la solution que j'ai proposée. Peut-être que cela peut vous aider. Il suffit d'inclure SQLite3 et vous avez ensuite un accès direct aux fonctions DLL. J'ai utilisé les mêmes méthodes qui ont déjà été décrites: http://simvector.com/download/delphi_sqlite3.zip P>
La DLL est simplement codée sous forme de source et l'unité DLLLoader le charge au moment de l'exécution. Le résultat final n'est pas une DLL supplémentaire dans votre distribution au détriment de celui-ci étant chargé en mémoire à la fois des pièces vs chargées sur demande via le système d'exploitation. p>
Nous avions besoin de travailler comme normal, mais pas de DLL supplémentaire dans la distribution. Alors travaille pour nos besoins. P>
Cela semble être une solution intéressante. Je pense que c'est une solution favorable sur DISQLITE
Oui, j'ai utilisé cette méthode dans ma base de code pendant un certain temps maintenant et il a bien fonctionné.
Je pense que la DLL sqlite dans la ressource et la charge dans le chargeur DLL devrait être la voie à suivre. Je ne sais jamais que nous pouvons charger la DLL du flux de mémoire. Merci de me montrer l'exemple.
Je viens de trouver ce site: synopse.info/fossil/wiki?Name=SQLite3+framework < / a> D'après ce que je peux dire, je pense que cela a été traduit à Delphi. Si oui, alors nous n'avons plus à passer par ces cerceaux supplémentaires.
Le fichier zip d'origine n'est plus en ligne. Il y a un guide sur la manière de charger une DLL à partir d'une ressource dans un tmemorystream, puis de l'utiliser directement sans l'écrire sur le disque: delphi.about.com/od/windowshellapi/a/...
Je n'aime pas le tout cette approche. Beaucoup mieux pour relier le code statiquement. Le déballage DLL est clunky et rend votre programme ressemblant à des logiciels malveillants.
Wrapper ADUCOM semble être ce que vous recherchez.