El 03/10/2011 11:38, Alejandro Carrillo escribió:
Hola

Ya le eché la revisada.
Que me gusto:
1) La aplicación no tiene lio a la hora de instalarse, solo descomprimir y ya.
2) Efectivamente hace su trabajo de crear las funciones.

Que no me gusto:
1) Sentencias como RETURN QUERY EXECUTE son lentas a la hora de ejecutarse y estas sentencias solo deben ejecutarse en casos donde no se sepa como va a llegar la sentencia. Además se suelen prestar para ejecutar inyecciones SQL. En mi concepto personal, prefiero las sentencias hechas a la medida y que se vayan modificando a medida de las necesidades.Ej: consulta:='insert into public.dato (iddato,nombredato,fecha,edad) values (' || $1 || ')' ;
EXECUTE consulta;
esta sentencia se ejecutará más lento que una función donde tome los parametros y los inserte sin usar execute. 2) En el manual no dice como usar las funciones, en especial la funcion de Select_general.
La de select_general debe usarse asi:
select * from public.select_general('select * from dato where 1=1') as tt (p_iddato integer, p_nombredato character varying, p_fecha date, p_edad numeric);

------------------------------------------------------------------------
*De:* Anthony <asotolo...@uci.cu>
*Para:* Alejandro Carrillo <faster...@yahoo.es>
*CC:* "pgsql-es-ayuda@postgresql.org" <pgsql-es-ayuda@postgresql.org>
*Enviado:* viernes 5 de abril de 2002 16:11
*Asunto:* [pgsql-es-ayuda] Re: [pgsql-es-ayuda] [OT] Algunas funciones útiles para desarrollo en postgresql

On 03/10/11 09:41, Alejandro Carrillo wrote:
http://code.google.com/p/generadorprocparapostgresql/
Es un generador de procedimientos almacenados para postgresql. FUE TOMADO DE otro proyecto q estaba abandonado llamado pgp-generator. Me pareció buena la idea y para no dejarlo morir creé este proyecto. Contiene soporte para la creación de insert, delete, update y select, solo debe escribir el nombre de ls funcion, el esquema y la tabla y este se encarga de generar el procedimiento almacenado de la fucnion solicitada(insert,delete,update,select)


http://code.google.com/p/datageneratorpostgresql/
Es un generador de datos para tablas en postgresql. Le crea datos con el fin de probar velocidad en consultas, actualizaciones y borrados de datos en una tabla. Solo debe: 1) Crear el lenguaje plpgsql 2) Crear el schema utils para que estas funciones queden depositadas en ese schema 3) Pasar el nombre del schema, la tabla, numero de registros a insertar/generar y el numero en ascii inicial y final (ej: espacio es el nro ascii 32, comilla simple es 34) EJ: select utils.creardatostabla('public','clientes',50,32,78) 4) Disfrútalo y recomiendalo a tus amigos Posdata: Puede insertar registros con caracteres especiales como comilla simple('), doble(") y barra invertida "\", lo cual lo hace muy bueno a la hora de experimentar con campos especiales

2 proyectos de su humilde servidor.

¿Opiniones, sugerencias, correcciones?
Hola algo como lo primero que pones tenemos algo por aca desarrollado en su version inicial (CRUD-PG) , aunque hemos organizado algunas ideas que pretendemos poner en el futuro para mejorarlo, pero este esta funcional si deseas conocerlo esta aqui
http://postgresql.uci.cu/node/74

y el link de descarga: http://postgresql.uci.cu/descargas/tools/CRUD-PG%201.1.tar.bz2

saludos

PD: el segundo que envias tampoco lo conocia , pero me interesa utilizarlos gracias.


me alegro que tengas aspectos que le guste tendré en cuenta sus sugerencias, pero es que utilizo el ejemplo que usted me sugiere para ejecutar las sentencias(insert, update y delete) Ej:consulta:='insert into public.dato (iddato,nombredato,fecha,edad) values (' || $1 || ')' ; EXECUTE consulta;

pero para consultas select que me interesa el resultado tengo que ejecutarlos con RETURN QUERY EXECUTE pues es la única forma que conozco, al menos yo, de ejecutar conusltas dinámicas formadas por concatenacion de cadenas y pueden variar , entiendo que son un poco lentas si las ejecuto asi pero bueno, si desea coolaborar con la solucion , son bienvenidos sus sugerencias, hace tiempo que no le hago nada.
saludos y gracias!!!

Responder a