Power Builder - como obtengo el ultimo id ingresado

 
Vista:

como obtengo el ultimo id ingresado

Publicado por amilcar (327 intervenciones) el 17/01/2003 23:01:16
quisiera saber el ultimo id ingresa en una tabla para pasarlo
como parametro, hay alguna funcion que me permita saber eso
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como obtengo el ultimo id ingresado

Publicado por milson cardona (613 intervenciones) el 18/01/2003 16:43:49
Un saludo especial desde COLOMBIA

Entiendo que lo que necesitas es recuperar el consecutivo que el motor de DB le asigna a el último registro ingresado a una tabla determinada, si esto es lo que necesitas te doy un ejemplo de como hacerlo en ORACLE desde PB, si trabajas con otro motor de DB debes consultar la función que debe tener un nombre muy similar.

DOUBLE ldbl_id

SELECT MAX(rownum)
INTO :ldbl_id
FROM tabla
USING sqlca; //colocas tu variable transaccional

---- si lo que necesitas es recuperar un id que tu le estas asignando automáticamente a cada fila, se hará de una forma muy similar
DOUBLE ldbl_id

SELECT campo_id //si quieres recuperar el último utilizas la función MAX
INTO :ldbl_id
FROM tabla
WHERE condicion //si quieres puedes omitir el WHERE si no lo necesitas
USING sqlca; //colocas tu variable transaccional

ojala te sirva de algo, sino trata de explicar un poco más el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como obtengo el ultimo id ingresado

Publicado por Victor //:-) (116 intervenciones) el 20/01/2003 21:18:04
Hola Juan:
Yo trabajo con PB 6.5 por lo que el campo integer/numeric IDENTITY se puede recuperar automaticamente en la DW. Solo Selecciona este campo dentro del SQL de la DW, y si luego vas a "Update Properties" y lo Deseleccionar de "Updateable Columns" para que no marque error.
Ahora solo inserta un nuevo registro DW.Insert(0) y al hacer DW.update()
el campo ID, se vera el nuevo numero y puede ser leido con DW.GetItemNumber().

Mi motor DB es MS-SQL Server 6.5, asi que estando dentro de un "Store Procedure", inserto un registro "Insert into tabla values(1,1,1)/Select * from otra_tabla" y leo la variable de ambiente SQL @@IDENTITY . (Nota: NO USO "SELECT MAX(CLAVE) FROM TABLA" POR QUE SQL LOCKEA POR PAGINA Y NO POR REGISTRO, POR LO QUE OTRO USUARIO PODRIA AUMENTAR EL MAXIMO.)

Declare @nueva_clave integer

Insert into tabla values(1,1,1)/Select * from otra_tabla
/*es importante hacer la lectura de @@IDENTITY inmediatamente despues de insert, ya que el valor cambia con otro insert de cualquier otra tabla*/
select @nueva_clave = @@IDENTITY
Espero te Sirva.
atte:
Victor //:-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar