RE: [Pgsql-ayuda] Llamada a programas externos desde postgres

From: "Edwin Quijada" <listas_quijada(at)hotmail(dot)com>
To: magnvsctv(at)hotmail(dot)com
Cc: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: RE: [Pgsql-ayuda] Llamada a programas externos desde postgres
Date: 2004-01-27 14:46:01
Message-ID: BAY1-F143C8emKOJdlE0004a22a@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Porque no instalas Pl/Perl en la base de datos y haces esto en vez de
amargarte la vida corriendo funciones desde C??

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-809-747-2787
* " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo
comun"
*-------------------------------------------------------*

>From: "Magnvs -- Carles Querol" <magnvsctv(at)hotmail(dot)com>
>To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
>Subject: [Pgsql-ayuda] Llamada a programas externos desde postgres
>Date: Mon, 26 Jan 2004 18:52:22 +0000
>
>Hola a todos,
>
>Me he pasado la última semana rompiéndome la cabeza para escribir una
>función en C que llame a un procedimiento externo para poder generar
>documentos XML, pero no hay forma de que funcione. Así, que si alguno sabe
>si postgres ya tiene implementada una función de este tipo, por favor que
>me lo haga saber. Os pego el código de la función que he escrito yo, por si
>alguno de vosotros puede decirme donde falla (cuando la llamo con, por
>ejemplo, select CridarExec('/usr/bin/perl','-V'), me devuelve el valor "2",
>que según errno, significa que no tengo permisos para ejecutar el programa
>invocado):
>
>
> 1 #include <stdio.h>
> 2 #include <errno.h>
> 3 #include "postgres.h"
> 4 #include "fmgr.h"
> 5 #include <unistd.h>
> 6 #include <string.h>
> 7 #include <errno.h>
> 8
> 9
> 10 PG_FUNCTION_INFO_V1(CridarExec);
> 11
> 12
> 13 Datum
> 14 CridarExec (PG_FUNCTION_ARGS) {
> 15 int retornat;
> 16
> 17 text * path = PG_GETARG_TEXT_P(0);
> 18 text * args = PG_GETARG_TEXT_P(1);
> 19
> 20 size_t filename_len = VARSIZE(path)-VARHDRSZ;
> 21 size_t arguments_len = VARSIZE(args)-VARHDRSZ;
> 22
> 23 char *filename;
> 24 char *arguments;
> 25
> 26 filename = (char *)palloc(filename_len);
> 27 arguments = (char *)palloc(arguments_len);
> 28
> 29 memcpy (filename, VARDATA(path), filename_len);
> 30 memcpy (arguments, VARDATA(args), arguments_len);
> 31
> 32 filename[filename_len] = '\0';
> 33 arguments[arguments_len]= '\0';
> 34
> 35 retornat = execl(filename, arguments, NULL);
> 36
> 37 pfree(filename);
> 38 pfree(arguments);
> 39
> 40 PG_RETURN_INT32((int32)errno);
> 41 }
> 42
>
>Gracias a todos.
>
>
>PD. Lo que paso como parámetros és el nombre del archivo y la opciones. La
>idea es pasar como archivo ejecutable un módulo PHP y como parámetro, un
>código a partir del cual se genera el documento XML.
>
>
>Carles Querol
>magnvsctv(at)hotmail(dot)com
>carquesa(at)eui(dot)upv(dot)es
>
>Linux Registered User #299843
>
>_________________________________________________________________
>Charla con tus amigos en línea mediante MSN Messenger.
>http://messenger.microsoft.com/es
>
>_______________________________________________
>Pgsql-ayuda mailing list
>Pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
>http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda

_________________________________________________________________
MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gutirrez Cuberos Tania Milena 2004-01-27 16:14:13 [Pgsql-ayuda] existen esquema, sinonimos o union de esquemas
Previous Message Edwin Quijada 2004-01-27 14:35:43 RE: [Pgsql-ayuda] configura acceso desde el pgadmin