el ID del ultimo INSERT se lo puede saber?

el ID del ultimo INSERT se lo puede saber?

Postby goosfancito » 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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: el ID del ultimo INSERT se lo puede saber?

Postby cmsoft » Mon Jun 23, 2014 11:36 am

Code: Select all  Expand view
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.
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: el ID del ultimo INSERT se lo puede saber?

Postby goosfancito » Mon Jun 23, 2014 11:47 am

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: el ID del ultimo INSERT se lo puede saber?

Postby MarioG » 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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: el ID del ultimo INSERT se lo puede saber?

Postby goosfancito » 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: Select all  Expand view
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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: el ID del ultimo INSERT se lo puede saber?

Postby MarioG » Mon Jun 23, 2014 1: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: Select all  Expand view
  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: Select all  Expand view
  //fill values
   aValues = { CToD( '09-03-2008' ), 'Q', NIL }
   oServer:Insert( cTable, aColumns, aValues )  
 
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: el ID del ultimo INSERT se lo puede saber?

Postby goosfancito » Mon Jun 23, 2014 1:18 pm

a ok.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: el ID del ultimo INSERT se lo puede saber?

Postby joseluisysturiz » Mon Jun 23, 2014 2: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.
Last edited by joseluisysturiz on Mon Jun 23, 2014 2:15 pm, edited 1 time in total.
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: el ID del ultimo INSERT se lo puede saber?

Postby goosfancito » Mon Jun 23, 2014 2:14 pm

gracias!
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 64 guests