Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 16/02/2012 15:30:17
- Squid
- Membre
Utilisation d'une dll dans postgresl
Bonjour,
Je suis actuellement stagiaire en alternance.
Mon entreprise souhaite avoir un SGBD performant avec une extension spatiale. J'ai donc proposé Pgsql avec Postgis.
La solution est donc à l'essai.
Un certain nombre de solutions existent déjà et ont été développée en VB. Je souhaiterais savoir si je peux les exploiter. Il s'agit de scripts utilisant une dll. Est-il possible "d'importer" la dll dans Pgsql?
Cela semble possible en C mais j'ai du mal à compiler mes fichiers.
Existe t'il d'autres méthodes?
Merci,
Michaël
Jeune Padawan !
Hors ligne
#2 16/02/2012 16:05:27
- gleu
- Administrateur
Re : Utilisation d'une dll dans postgresl
Il est possible de demander à PostgreSQL de charger des bibliothèques partagées. Par contre, elles doivent être écrites en C et respecter un certain formalisme.
Guillaume.
Hors ligne
#3 16/02/2012 16:16:41
- Squid
- Membre
Re : Utilisation d'une dll dans postgresl
La dll est écrite en VB. Les entrées de la méthode que je souhaite utiliser prend en entrées des double precision et renvoie un integer.
Une dll est en langage machine, est-il important qu'elle soit codée à la base en C?
http://forums.postgresql.fr/viewtopic.php?id=893
Bonjour,
C'est possible à mon avis, mais pas la bonne solution. Il sera bien plus efficace de faire un programme externe, en C, s'appuyant sur cette DLL, et gérant les insertions en base : si vous voulez utiliser cette DLL directement de PostgreSQL, cela veut dire écrire des wrappers en C vers cette DLL, qui permettent de lire les enregistrements des fichiers à partir de la DLL. Il vous faudra développer la logique de lecture directement dans ce wrapper, vous aurez des problèmes pour gérer des transactions, etc…
Peut-on m'expliquer ce que sont des wrappers?
Merci
Dernière modification par Squid (16/02/2012 16:19:08)
Jeune Padawan !
Hors ligne
#4 16/02/2012 17:14:05
- gleu
- Administrateur
Re : Utilisation d'une dll dans postgresl
Il faut PostgreSQL sache utiliser la DLL en question. Elle doit donc être codée d'une façon spécifique. En effet, il est aussi possible de créer une DLL wrapper en C qui appelerait la DLL qui fait le boulot, même si cette dernière est codée en VB ou autre. Pas vraiment efficace, pas forcément stable.
Guillaume.
Hors ligne
#5 16/02/2012 18:32:09
- Squid
- Membre
Re : Utilisation d'une dll dans postgresl
Merci pour votre réponse.
Je vais traduire le code de cette dll dans des fonctions Pg.
Michaël
Jeune Padawan !
Hors ligne
#6 16/02/2012 18:54:44
- gleu
- Administrateur
Re : Utilisation d'une dll dans postgresl
Pour plus d'infos sur l'écriture de fonctions en C avec PostgreSQL, je vous conseille la lecture de http://docs.postgresql.fr/9.1/xfunc-c.html
Ça vous aidera, que ce soit pour écrire la bibliothèque wrapper ou une bibliothèque complète.
Et pour aller plus loin, http://docs.postgresql.fr/9.1/extend-extensions.html et http://docs.postgresql.fr/9.1/extend-pgxs.html .
Guillaume.
Hors ligne
#7 17/02/2012 10:43:44
- Squid
- Membre
Re : Utilisation d'une dll dans postgresl
Merci gleu
Bonne journée
Jeune Padawan !
Hors ligne
Pages : 1