por fvaor necesito ayuda

From: jose ricardo <joripeca(at)yahoo(dot)com(dot)ar>
To: psql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: por fvaor necesito ayuda
Date: 2004-09-23 18:25:23
Message-ID: 20040923182523.54189.qmail@web60910.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

hola amigos.
Actualmente tengo una aplicacion dn vb que se conecta a una DB via ODBC (en la aplicacion utilizo ADODB)
en postgres bajo linux, la version actual de la DB es la 7.0.3 se que es algo antigua, pero como les he comentado
antes estoy en aras de migrar a la ultima version conocida.
anteriormente esta aplicacion se conectaba a una base de datos acces, el enlace entre la aplicacion y la base de
dato se hacia utilizando adodb y ODBC, el problemas se me presento con una transaccion que el jet reconocia pero
que en postgres me genera un error.
la transacion a groso modo consite en lo siguiente.
debo generar una secencia de numeros consecutivo pero por ningun motivo esa secuencia se debe saltar
es decir 1,2,3,4,.... nunca debe suceder 1,3,4,5,7,... ya que acarrearia problemas en la inforcion,
cada estacion de trabajo toma un numero (el cual sera el ultimo numero de la secuencia+1), al intentar guardar
la informacion debe verificar que ese numero no haya sido utilizado por otra estacion si este es el caso
solicita que se le asigne un nuevo numero. este numero es la clave principal en una de las tablas y este es
referenciado por la informacion contenidas en otra entidades. durante el proceso de gaurdado
se debe verificar mucha de la informacion que se almacena en las tablas y si se detecta un error toda la
operacion debe se obortada.
se me ocurriron muchas ideas para salvar el escollo, y la solucion que le di fue la siguiente.
algo mas o menos asi.
1 se inicia la transacion
2 solicita numero temporal
3 se guarda la informacion con el numero temporal en la tabla1
4 si falla el guardao vaya 1
6 actualice valor temporal +1
5 guarda informacion en la tabla2,tabla3...tablan
6 si se guardo con exito vaya a 7 si no vaya 13
7 solicite numero real
8 actualice el valor temporal por el valor real en la tabla1
9 si no tuvo exito la actualizacion vaya 7
10 actualice valor real +1
11 confirme transacion con exito
12 fin
13 transacion sin exito, aborte
14 fin
la idea es no dejar perder un numero real en la secuencia de la numeracion, el problema se genera
en el paso 8 es decir cuando se intenta actualizar la informacion, el motor (postgres) dice que no existe la
informacion, esto tiene algo de logica la transacion no ha finalizado y por lo tanto aludo que
la informacion no ha sido volcada a las tablas.
esto en acces si lo podia hacer y no me generaba error.
la pregunta es existe ¿alguna instruccion en postgres que permita que la informacion que se genere
desde una transacion se vista como si ya existira asi no se haya hecho comit?, ¿cual es la utilidad de set transaction isolation level?

de antemano les agradezco cualqueir informacion y mis mas sinceras disculpas por las molestias causadas

100mb gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
¡Tenelo ya!

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fredy Ruiz Hernández 2004-09-23 18:38:03 ¿ createlang plpgsql basedatos ?
Previous Message Jaime Casanova 2004-09-23 18:06:17 Re: Hombre al borde del suicidio....