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