Foros del Web » Programando para Internet » ASP Clásico »

Ver último dato

Estas en el tema de Ver último dato en el foro de ASP Clásico en Foros del Web. Hola quiero preguntaros una duda que no sé como hacerlo ya que no tengo mucha experiencia con asp; mi cuestión es que tengo que recojer ...
  #1 (permalink)  
Antiguo 27/06/2006, 04:31
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
Ver último dato

Hola quiero preguntaros una duda que no sé como hacerlo ya que no tengo mucha experiencia con asp; mi cuestión es que tengo que recojer el último número de un campo autonomerico que se haya escrito con anterioridad,pero desconozco como hacerlo. Si alguien me puede guiar se lo agradeceria.

Este sé que no es el codigo para leerlo, pero es lo que uso para recojer los datos, muchas gracias

Código:
<%
  Dim oConn,strSQL, objRS
  Set oConn = Server.CreateObject("ADODB.Connection")

 oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("basededatos.mdb"))
 
	strSQL = "select distinct PARTES from CATALOGO"

	 Set objRS = oConn.Execute(strSQL)

  if objRS.Eof AND objRS.Bof Then
%>

NUM. ÚLTIMO PARTE=<%=objRS("nparte")%>
__________________
www.llamaracubabarato.com
  #2 (permalink)  
Antiguo 27/06/2006, 09:05
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
Para leer simplemente el campo no bastaría con escribirlo asi?

Código:
<%
  Dim oConn,strSQL, objRS
  Set oConn = Server.CreateObject("ADODB.Connection")

 oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("basedatos.mdb"))
 
	strSQL = "Select N_PARTE From PARTES Where (N_PARTE = last_insert_id()) "

	 Set objRS = oConn4.Execute(strSQL)

  if objRS.Eof AND objRS.Bof Then
%>
y en este caso donde quiera introduccirlo esto:
Código:
<%=objRS("N_PARTE")%>
me da el error de La función 'last_insert_id' no está definida en la expresión.

Qué me faltaria por colocar? muchas gracias
  #3 (permalink)  
Antiguo 27/06/2006, 09:14
 
Fecha de Ingreso: junio-2002
Mensajes: 93
Antigüedad: 22 años
Puntos: 0
Prueba con esto:
Código PHP:
sql="Insert into tutabla ...."
objConn.execute(sql)
set rs=createobject("ADODB.Recordset")
SQL2="SELECT @@IDENTITY AS MyId FROM tutabla"
rs.open SQL2,objConn
ultimo_autonumerico 
rs("MyId"
Espero que te sirva

Un saludo
Kaki
  #4 (permalink)  
Antiguo 28/06/2006, 03:23
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
las opciones anteriores son válidas dependiendo del tipo de BD.
ésta tambien vale:
Código:
select distinct PARTES from CATALOGO order by campo_id desc
el primer registro devuelto es el último insertado
  #5 (permalink)  
Antiguo 29/06/2006, 01:59
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
muchisimas gracias trasgukabi, con el codigo tan simple como ese lo he conseguido! un saludo y suerte.
  #6 (permalink)  
Antiguo 03/07/2006, 05:05
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
y si vas paseando por la calle, se te puede caer un satélite de comunicaciones en la cabeza, son las putadas del siglo XXI
  #7 (permalink)  
Antiguo 03/07/2006, 08:24
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
pregunta para que necesitas saber cual es el ultimo????????

para estadisticas o para???????

o es para saber que el ultimo es 80 y el proximo que ingresaras es el 81?????
__________________
JuanRa Pérez
San Salvador, El Salvador
  #8 (permalink)  
Antiguo 03/07/2006, 23:42
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
esa consulta valdría para sacar, por ejemplo, algo como: "EL ÚLTIMO USUARIO QUE SE REGISTRÓ FUE...". Y para cienes y cienes de cosas más
  #9 (permalink)  
Antiguo 04/07/2006, 00:38
Avatar de deprabado  
Fecha de Ingreso: febrero-2002
Mensajes: 649
Antigüedad: 22 años, 3 meses
Puntos: 0
Para obtener la ultima clave
select @@identity as ultimaclave

luego de ingresar a la base de datos, es decir

sql= "insert into tabla (campo) values (valor)
set rsinsertar =miconexion.execute(sql)

luego

sql2=select @@identity as ultimaclave
set rsultimaid=miconexion.execute(sql2)

y para mostrrar el valor

<%=rsultimaid.fields.item("ultimaclave").value%>

esto, mas transacciones es como yo los utilizo asi no dependo de que me caiga un satelite en la cabeza mientras camino en la calle

funciona con bases de datos SQLserver no se si con access o mySql funciona

Última edición por deprabado; 04/07/2006 a las 00:44
  #10 (permalink)  
Antiguo 04/07/2006, 00:46
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Cita:
Iniciado por kaki
Prueba con esto:
Código PHP:
sql="Insert into tutabla ...."
objConn.execute(sql)
set rs=createobject("ADODB.Recordset")
SQL2="SELECT @@IDENTITY AS MyId FROM tutabla"
rs.open SQL2,objConn
ultimo_autonumerico 
rs("MyId"
Espero que te sirva

Un saludo
Kaki
ya habían hablado sobre eso. Sólo estaba dando otra opción, que nunca está mal (y si a alguno le parece mal, que se joda). Está visto que la ironía brilla por su ausencia en este foro. A partir de ahora, procuraré tener más cuidado

Cita:
Iniciado por deprabado
sql2=select @@identity as ultimaclave
Y procura no hacerlo así, no vayas a reventar el servidor

Cita:
Iniciado por deprabado
<%=rsultimaid.fields.item("ultimaclave").value%>
optimización a tope!!!! mucho mejor mirar en tres hijos que no hacer
<%=rsultimaid("ultimaclave")%>

Última edición por trasgukabi; 04/07/2006 a las 00:51
  #11 (permalink)  
Antiguo 04/07/2006, 00:49
Avatar de deprabado  
Fecha de Ingreso: febrero-2002
Mensajes: 649
Antigüedad: 22 años, 3 meses
Puntos: 0
no es eso, pero se hizo una pregunta... que pasa cuando ingresan 2 registros a la vez???? es por ello que debe usar transacciones (y por otras cosas) en esos casos por lo general se usan muchas consultas a la base de datos a laves y si falla alguna parte del codigo todo se "jode"...

espero no despertar recentimientos ni nada, perdona si fuy un poco grosero.

no creo que a la hora de programar se deba dejar nada al azar, si hacemos eso luego el codigo y nuestras aplicaciones comienzan a presentar fallos por todos lados, la idea es ayudar a hacer las cosas bien creo.
  #12 (permalink)  
Antiguo 04/07/2006, 00:55
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
es que dos registros a la vez es IMPOSIBLE!!!! Cualquier gestor de BBDD genera transacciones si le llegan dos insert a la vez. cualquiera. Incluso access. Incluso si lo haces como tú dices, te expones al mismo fallo (repito, virtualmente imposible)
y no hay resentimientos. Éstas son las discusiones que enriquecen un foro.
  #13 (permalink)  
Antiguo 04/07/2006, 09:28
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Cita:
Iniciado por trasgukabi
esa consulta valdría para sacar, por ejemplo, algo como: "EL ÚLTIMO USUARIO QUE SE REGISTRÓ FUE...". Y para cienes y cienes de cosas más

Claro por eso pregunto....

si vos unicamente vas a decir el ultimo usuario que se registro es PEDRO, el tanto del mes tanto. no necesitas nada mas que hacer un select * form latabla order by DESC.. no veo el chiste de usar otra cosa.

pero si lo que necesitas es recuperar el ID que le asignastes a pedro, no necesariamente tiene que ser el ultimo, porque el pudo llenar su formulario y en ese momento otro lleno otro formulario y el id que regresaria es el ultimo en la base de datos.

la duda seria: "SELECT @@IDENTITY", regresa el ultimo ingresado o el que se ingreso con esa sesion de navegador.

segun medio he entenido lo que necesita es que:
  • el usuario se registre
  • al insertar el registro, saber que ID le puso en la base de datos usuarios
  • utilizar ese ID de la base de usuarios para poder adicionar datos a otras tablas
  • y asi llevar el registro de sus otros datos relacionados.

no se si ando mas pedido que adan en el dia de las madres por eso pregunte para que lo nacesita.

si es solo para mostrar quien es el ultimo "order by desc", si es para saber que valor le puso la base para utilizarlo en las proximas transacciones dentro despues del registro es otro rollo similar, pero por eso pregunte.

saludos
__________________
JuanRa Pérez
San Salvador, El Salvador
  #14 (permalink)  
Antiguo 05/07/2006, 09:02
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
peligrosa por?
__________________
JuanRa Pérez
San Salvador, El Salvador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:48.