FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour el ID del ultimo INSERT se lo puede saber?
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
el ID del ultimo INSERT se lo puede saber?
Posted: Mon Jun 23, 2014 11:14 AM

Hola.

Sin hacer un SELECT de nuevo, se puede averiguar cual fue el ID (que es un campo autoincrementable) del ultimo INSERT a una base de datos?

Necesito por esto:
tengo dos tablas, una depende de la otra, la tabla1 al hacer un insert toma un nuevo valor ID, ese ID lo necesito parar guardar en la otra tabla.

gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: el ID del ultimo INSERT se lo puede saber?
Posted: Mon Jun 23, 2014 11:36 AM
Code (fw): Select all Collapse
oServer:GetAutoIncrement("mi_tabla")

oServer es la conexión activa, y mi tabla es la tabla que deseas saber cual es el ultimo que le toca.
Pero antes de hacer el insert! Lo puedes poner en un blocke TRY .... CATCH para que si hay algun problema no se actualice ninguno de los dos.
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: el ID del ultimo INSERT se lo puede saber?
Posted: Mon Jun 23, 2014 11:47 AM

gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: el ID del ultimo INSERT se lo puede saber?
Posted: Mon Jun 23, 2014 12:17 PM

Goos
No se con que lib de conexión a mysql trabajas; no obstante, si interpreto bien tu pregunta, lo que yo haría es luego del Insert, "leer" todos los campos de lo ultimo que agruegue y asignar el nID a uyna variable que luego guardo en la otra Tabla.
Yo uso TDolphin, si te sirve, te busco el ejemplo

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: el ID del ultimo INSERT se lo puede saber?
Posted: Mon Jun 23, 2014 12:41 PM
Hola.
Es lo que hacia hasta antes de conocer el GetAuto...

ya que usas Tdolphin te consulto: cuando mandas un insert, update.... mandas los datos tal cual los manejas en tus app? o antes los convertis?
tdolphin convierte los datos que le mandas a los del tipo que esta definido en la tabla?

porque estoy usando ClipValue2SQL( campo_fecha) en un campo que lo tengo declarado como date en la tabla y me esta tirando un error:
Code (fw): Select all Collapse
Incorrect date value: ''2014-06-26'' for column 'fecha' at row 1

y al pasarle el "campo_fecha" sin convertirlo con clipValue2sql no me tira ese error.

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: el ID del ultimo INSERT se lo puede saber?
Posted: Mon Jun 23, 2014 01:07 PM
Goos;
Como soy novato en el uso de Tdolphin, no manejo las variadas opciones para agregar datos

Cuando uso el metodo :Insert()/:Update(), hago
Code (fw): Select all Collapse
   if lAgrega
      oTBPROVEDORES:Blank()
   else
      oTBPROVEDORES:SetReadPADAll( TRUE )
      oTBPROVEDORES:Load()
   end
...
   REDEFINE GET aO[_GRazSoc] VAR oTBPROVEDORES:RazSocial ID 100 OF aO[_Fld1]:aDialogs[1] UPDATE ;
            PICTURE "@!"
o sea estoy trabajo directamente sobre los campos objetos

En cuanto al campo fecha, de momento no lo estoy usando.
No obstante revisando los samples de TDolphin, filltbl.prg, lo hace así:
Code (fw): Select all Collapse
   //fill values 
   aValues = { CToD( '09-03-2008' ), 'Q', NIL } 
   oServer:Insert( cTable, aColumns, aValues )
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: el ID del ultimo INSERT se lo puede saber?
Posted: Mon Jun 23, 2014 01:18 PM

a ok.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: el ID del ultimo INSERT se lo puede saber?
Posted: Mon Jun 23, 2014 02:10 PM

Espero esto te ayude, saludos... :shock:

http://mysql.conclase.net/curso/?sqlfun=LAST_INSERT_ID

http://cambrico.net/30-04-2008/mysql-co ... -una-tabla

http://jcvier.wordpress.com/2009/01/11/ ... y-php-sql/

LAST_INSERT_ID([expr])

Devuelve el último valor generado automáticamente que fue insertado en una columna AUTO_INCREMENT.

mysql> SELECT LAST_INSERT_ID();
-> 195

si lo deseas puedes mantenerlo en una VAR de memoria, asi no tienes que volver hacer el SELECT, aunque si tienes la tabla abierta yo haria un gobottom() y leo el valor del campo auto_increment.

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: el ID del ultimo INSERT se lo puede saber?
Posted: Mon Jun 23, 2014 02:14 PM

gracias!

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/

Continue the discussion