Re: recuperar el nro del registro actualizado utilizando Ado

From: "Miguel Juan" <mjuan(at)cibal(dot)es>
To: "Oscar Arca" <Oarca(at)mscparaguay(dot)com(dot)py>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: recuperar el nro del registro actualizado utilizando Ado
Date: 2006-05-08 13:33:04
Message-ID: 003001c672a3$f0185500$07c8a8c0@Miguel
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

El sistema que utilizabas con dao no es demasiado fiable, ya que si alguién más inserta un registro antes de que tú leas el valor del último insertado por tí, puede generarte problemas. En sistemas con muchos usuarios simultaneos ocurre de vez en cuando, y puedes volverte loco buscando la causa de los errores.

Para solucionar este problema, en Postgres puedes usar la funcion currval('nombre_secuencia') después de haber insertado el registro. Este metodo te asegura que sólo te devolverá el último valor insertado en la tabla desde tu conexión actual.

La sintaxis sería una cosa así:

SELECT currval('nombreTabla_campoautonumerico_swq');

Otra opción, es usar nextVal() antes de insertar el registro, y después insertas el nuevo registro con el código devuelto por dicha función.

Saludos,

Miguel Juan

----- Original Message -----
From: Oscar Arca
To: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Monday, May 08, 2006 2:56 PM
Subject: [pgsql-es-ayuda] recuperar el nro del registro actualizado utilizando Ado

Estoy programando en vb utilizo ado para conectarme a la bd postgres, lo q necesito hacer es

Grabar un registro y una vez grabado recuperar el autonumerico para grabarlo en otra tabla

Utilizando dao con mdb lo hacia asi:

Rs.update

Rs.movelast

Variable = Rs("campo")

Y ya estaba.

Pero ahora se me complico.

Desde ya muchas gracias

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Cristian Gallegos 2006-05-08 13:55:57 Tipo de dato
Previous Message Brian Colman 2006-05-08 13:32:30 Re: recuperar el nro del registro actualizado utilizando Ado