--- El sáb 11-oct-08, Reynier Perez Mira <[EMAIL PROTECTED]> escribió: > De: Reynier Perez Mira <[EMAIL PROTECTED]> > Asunto: RE: [pgsql-es-ayuda] Duda con las secuencias > A: "Alvaro Herrera" <[EMAIL PROTECTED]> > Cc: [email protected] > Fecha: sábado, 11 octubre, 2008, 12:13 am > Gracias a todos por sus respuestas. Alvaro tendré en cuenta > lo que me dices y probaré el uso de las secuencias desde la > aplicación lo que eso me deberá llevar un mayor tiempo. > > Un saludo > Ing. Reynier Pérez Mira > Grupo de Soporte al Desarrollo - Dirección Técnica IP Estimado amigo Reynier Perez. Hay una cancion que dice depende, todo depende, segun como se mire todo depende.... Por el unico motivo que usaria llevar una secuencia desde la aplicacion y no lo hago, seria que tuviera la necesidad de un numerador continuo, como los formularios de facturaciond, en los que llevo diferentes seriales en un mismo campo, una para credito, otra para contado y asi sucesivamente para cada tipo de documento, de esta forma no dependo de un campo serial. , aun asi desarrolle el tema con una funcion pl/pgsql y no desde la aplicacion, asi mantengo la logica en la base de datos. Incluso en mi caso se puede dar que dos documentos distintos puedan depender de un mismo serial y otros no, para lo cual entonces, hago esto Tipo Documentos id_tipo_doc serial documento, texto etc, etc, id_numerador Numerador id_numerador, serial serie_doc, numero_doc Una consulta con un join y reglas de update e insert me resuelve todo el problema. select id_tipo_doc documento,serie_doc,numero_doc from tipo_documentos inner join numerador on tipo_documentos.id_numerador=numerador.id_numerador la regla par update. Una funcion pl/pgsql, que con un parametro para pasar tipo_doc, llama a la consulta con where id_tipo_doc=parametro y con un bolqueo suma uno a numero_doc y retorna el mismo para ser tomado por la aplicacion que va a imprimir el documento con ese numero, puesto que en los cabezales de los documentos siempre lo actualizo con. numero_doc=obj.execute "select from la_funcion(tipo_doc)" Si este no es el caso, segui con seriales no te van a molestar, antes de conocer el "tipo serial", era una tranza el trabajo que debias tomarte, ahora es muy facil, pues antes creabas el serial y a un campo entero o entero largo en la opcion default tenias que escribir una sentencia en default para que lo actualizara segun la secuencia creada, ahora el tipo serial no hace mas que hacer el trabajo por ti, en si mismo no es otro tipo de campo. El problema en este caso de usar serial es que si editas un registro en modo insercion desde la aplicacion y te arrepentis no actualizandolo, el serial aumento y te embromas, por que el proximo documento por ejemplo seria 1,2,3,5 habiendo desaparecido el 4. Bien estimado espero te sirva esto, si no gtalk y te paso los ejemplos de mi aplicacion, el cual tiene un detalle a mejorar en algun momento, pero que te puede servir de base para lo que queres. Si el problema es no abusar de seriales, no te preocupes para eso estan. Pero como dijo Alvaro, trata de que verificar que se eliminan cuando elimines la/s tabla/s que lo usan. Un abrazo fraterno Saluda Atte. Gabriel Colina ____________________________________________________________________________________ Premios MTV 2008¡En exclusiva! Fotos, nominados, videos, y mucho más! Mira aquí http://mtvla.yahoo.com/ -- TIP 7: no olvides aumentar la configuración del "free space map"
RE: [pgsql-es-ayuda] Duda con las secuencias
Gabriel Hermes Colina Zambra Sat, 11 Oct 2008 00:21:55 -0700
- [pgsql-es-ayuda] Duda con las secuencias Reynier Perez Mira
- Re: [pgsql-es-ayuda] Duda con las secuen... Juan Martínez
- Re: [pgsql-es-ayuda] Duda con las secuen... Alvaro Herrera
- RE: [pgsql-es-ayuda] Duda con las se... Reynier Perez Mira
- RE: [pgsql-es-ayuda] Duda con la... Gabriel Hermes Colina Zambra
