Re: recuperar el nro del registro actualizado utilizando Ado

Lists: pgsql-es-ayuda
From: "Oscar Arca" <Oarca(at)mscparaguay(dot)com(dot)py>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: recuperar el nro del registro actualizado utilizando Ado
Date: 2006-05-08 12:56:43
Message-ID: 2C2017718CD12E4B932F6DE96C9F59B782BA27@servidor2.mscparaguay.com.py
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


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


From: "Brian Colman" <brian(dot)colman(at)gmail(dot)com>
To: "Oscar Arca" <Oarca(at)mscparaguay(dot)com(dot)py>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: recuperar el nro del registro actualizado utilizando Ado
Date: 2006-05-08 13:32:30
Message-ID: a625a2330605080632q1dd43871r59a7fa2cac5204cc@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Que me corrija la lista si no, pero hasta donde yo se, postgres no tiene
autonumerico como el access, en cambio tiene las secuencias.

Oscar en tu caso lo que yo suelo hacer es primero guardo en una variable el
valor del siguiente sequence y luego utilizo el valor en el insert.

Para invocar a la secuencia y que te devuelva el siguiente valor se utiliza.

select nextval('nombre_de_la_secuencia');

Espero te sirva

Salu2

Brian

El día 8/05/06, Oscar Arca <Oarca(at)mscparaguay(dot)com(dot)py> escribió:
>
>
>
> 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
>

--
Saludos

Brian Colmán Miers


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
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


From: Espartano <espartano(dot)mail(at)gmail(dot)com>
To: "Miguel Juan" <mjuan(at)cibal(dot)es>
Cc: "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 15:05:03
Message-ID: d353bd50605080805j39a598b8qc81802cd115e995b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

> 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

Yo utilizaria un serial y un trigger before insert para que inserte
ese valor en la otra tabla

--
http://espartano.linuxreal.org/blog/html/index.php