Vous n'êtes pas identifié(e).

#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


Marc Cousin a écrit :

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

Pied de page des forums