Jump to content


Photo

Último id agregado a una tabla


  • Please log in to reply
3 replies to this topic

#1 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 posts

Posted 16 July 2012 - 01:01 PM

Buenas, tengo un código que realiza el alta en una tabla MySQL.
Luego, quiero obtener el id de ese nuevo registro insertado y utilizarlo en otra operación MySQL.
Estoy buscando la forma de hacerlo, pero no le encuentro la vuelta en Lazarus.
Mi código esta algo así:



delphi
  1.       duracion := EncodeTime(Hs.Value,Mins.Value,Segs.Value,0);
  2.  
  3.       SubmitQ.SQL.Clear;
  4.       SubmitQ.SQL.Add('INSERT INTO video ( nombre, duracion, resena, idestado, idclasificacion) VALUES ( :titulo, :duracion, :resena, :idestado, :idclasificacion)');
  5.  
  6.       SubmitQ.ParamByName('titulo').AsString := Titulo.Text;
  7.       SubmitQ.ParamByName('duracion').AsString := TimeToStr(duracion);
  8.       SubmitQ.ParamByName('resena').AsString := Resena.Text;
  9.       SubmitQ.ParamByName('idestado').AsString := Estado.KeyValue;
  10.       SubmitQ.ParamByName('idclasificacion').AsString := Clasificacion.KeyValue;
  11.  
  12.       SubmitQ.ExecSQL;
  13.  
  14. { Ahora necesito el id de este registro insertado, para colocarlo en la tabla de "Peliculas" o "Documentales", segun sea el caso.}



Saludos y muchas gracias.
  • 0

#2 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 posts

Posted 16 July 2012 - 03:26 PM

Bueno, a priori lo resolví así:



delphi
  1.       SubmitQ.SQL.Clear;
  2.       SubmitQ.SQL.Add('SELECT idvideo FROM video ORDER BY idvideo DESC ');
  3.       SubmitQ.Open;
  4.       lastIdInserted := SubmitQ.FieldByName('idvideo').AsString;
  5.       submitQ.Close;



Pensé que podría existir algo más directo je.

Saludos.
  • 0

#3 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 posts
  • LocationOaxaca, México

Posted 16 July 2012 - 03:49 PM

Creo como colocas el código no están tus dos querys en una sola transacciones, lo que casi seguramente cuando tengas varios insert en la tabla no te asegura que el id que te regrese sea el que corresponda a tu insert, te sugiero veas las documentación de MySQL con respecto a este punto y evitarte 2 consultas separadas: http://au.php.net/ma...i.insert-id.php, la otra es como te comenté todo en una sola transacción.

Saludos
  • 0

#4 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 posts

Posted 16 July 2012 - 05:17 PM

Fredycc, a priori la aplicación es monousuario (solo yo). Es mi primer aventura en Lazarus y desconozco muchísimos conceptos je.
Pero, al ser yo solo el que la use, no van a existir más de 1 insert simultaneamente.

Saludos y gracias.
  • 0




IP.Board spam blocked by CleanTalk.