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

obtener el ultimo de un registro

Estas en el tema de obtener el ultimo de un registro en el foro de ASP Clásico en Foros del Web. hola amigos ando buscando la forma de obtener el utimo (osea el mayor) valor de una columna de mi tabla tb_session, el valos es id_session, ...
  #1 (permalink)  
Antiguo 10/03/2008, 13:21
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Exclamación obtener el ultimo de un registro

hola amigos ando buscando la forma de obtener el utimo (osea el mayor) valor de una columna de mi tabla tb_session, el valos es id_session, quiero tomar el ultimo valos de id_session y sumarle uno, me pueden dar de como seria el codigo?
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #2 (permalink)  
Antiguo 10/03/2008, 13:27
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: obtener el ultimo de un registro

"select top 1 * from tu tabla order by id desc"

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 10/03/2008, 13:43
 
Fecha de Ingreso: agosto-2007
Mensajes: 36
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: obtener el ultimo de un registro

espero te sirva pero yo uso mi id, como varchar, para q pueda realizar lo q tu necesitas, si es q e quieres agregar un nuevo registro presionando un boton y te muestre el nuevo numero en el txbox:


me.textbox1.text=var.funcion("select max("Cveid") From TABLE_X", "TABLA_X")
me.textbox1.text=val(textbox1.text) + 1
dim variableX as string
var.cveid = me.textbox1.text
variableX = Format (var.cveid, "0###")
me.textbox1.text=variableX


tienes que realizar el procedimiento de dataset el cual yo agrego como nombre funcion en una clase para poder ejecutar el query, y en mi pantalla q utilizo declaro public var as new variables para llamar la funcion, espero te sirva, no olvides cambiar a varchar tu id
  #4 (permalink)  
Antiguo 10/03/2008, 13:56
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Exclamación Re: obtener el ultimo de un registro

gracias por tu ayuda, bueno ya estuve probando con lo del SELECT MAX pero me marca un error

Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/it/p1_1.asp, line 18, column 23
str_uno = "SELECT MAX("id_session") FROM tb_session"
----------------------^


-------------
Código PHP:
            db.Open "tb_session"conn
            dim session_count
session_actual

            str_uno 
"SELECT MAX("id_session") FROM tb_session"
            
conn.Execute(str_uno)
            
            
session_count db("id_session")
            
Session("session_actual")= session_count 1
            
            str_dos 
"INSERT INTO tb_session (id_session) VALUES ("&Session("session_actual")&")"
            
conn.Execute(str_dos
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #5 (permalink)  
Antiguo 10/03/2008, 14:13
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Re: obtener el ultimo de un registro

Código:
str_uno = "SELECT MAX("id_session") FROM tb_session"
Te dicen algo las comillas en rojo? En la segunda estás cerrando el string, por lo que lo restante de la cadena sería un error. Poné al campo id_session sin las comillas.

Pero... ¿no estarás haciendo eso para reemplazar un campo autoincremental, no?
__________________
...___...
  #6 (permalink)  
Antiguo 10/03/2008, 14:19
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Exclamación Re: obtener el ultimo de un registro

no es auto incremental y pues ya hice lo que me dijiste y ahora me salio otro error

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
/it/p1_1.asp, line 16



Código PHP:
            dim session_countsession_actual
            db
.Open "tb_session"conn<--------------------LINEA 16
            str_uno 
"SELECT MAX(id_session) FROM tb_session"
            
conn.Execute(str_uno)
            
            
session_count db("id_session")
            
Session("session_actual")= session_count 1
            
            str_dos 
"INSERT INTO tb_session (id_session) VALUES ("&Session("session_actual")&")"
            
conn.Execute(str_dos
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #7 (permalink)  
Antiguo 10/03/2008, 14:26
Avatar de Laika6  
Fecha de Ingreso: marzo-2008
Mensajes: 41
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: obtener el ultimo de un registro

Esta es mi propuesta:

Después de ejecutar un INSERT en la tabla que estás manipulando, escribes la siguiente consulta:

//consultas el último registro
$consulta_sql= mysql_query("SELECT * FROM tabla WHERE campo = LAST_INSERT_ID()",$conexion_sqlserver);

//lo imprimes ( pensando, en este ejemplo, que fuera el único en la tabla)
$last_id = mysql_fetch_array($consulta_sql);
echo $last_id[0];

donde "campo" será el nombre del campo autoincrementable que estás manejando y del cual quieres obtener el último registro insertado.

Espero te sirva. Saludos!
  #8 (permalink)  
Antiguo 10/03/2008, 16:15
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Re: obtener el ultimo de un registro

Cita:
Iniciado por Laika6 Ver Mensaje
//consultas el último registro
$consulta_sql= mysql_query("SELECT * FROM tabla WHERE campo = LAST_INSERT_ID()",$conexion_sqlserver);

//lo imprimes ( pensando, en este ejemplo, que fuera el único en la tabla)
$last_id = mysql_fetch_array($consulta_sql);
echo $last_id[0];
pero eso es para PHO no? en ASP no se usa el mysql_fetch_array
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #9 (permalink)  
Antiguo 11/03/2008, 08:29
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: obtener el ultimo de un registro

El problema no sería mysql_fetch_array, sino el LAST_INSERT_ID(), ya que no mencionas que que sea MySQL y si mencionas que no es autoincremental, por lo que dicho código no te sirve.

Definitivamente lo que ocupas es un simple SELECT MAX(id_session) FROM tb_session, como ya te lo mencionaron.

Sobre el error que mencionas.... mmmmm, vamos, es un poco lógico y descriptivo el mensaje del error ¿no?

Cita:
...
db.Open "tb_session", conn<--------------------LINEA 16
..l.
Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
Significa que tb_session no es una instrucción SQL válida, y de hecho, no lo es.

Ahí debiste haber puesto algo como:

db.Open "SELECT MAX(id_session)+1 AS SiguienteID FROM tb_session"

para poder obtener el ID mediente db("SiguienteID")

Saludos
  #10 (permalink)  
Antiguo 11/03/2008, 14:06
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Exclamación Re: obtener el ultimo de un registro

bueno amigos sigo con el problema este y no hay modo de que lo pueda resolver, miren tratare de explicarme bien que quiero, para empezar es ASP con ACCESS, tengo una tabla tb_sesion con los campos id_sesion e id_proyecto y otros campos mas, en el proyecto que estoy realizando tengo que enlazar varios formularios, son como una evaluacion de varias cosas y por eso pense enlazarlas todas por una session que este relacionada con varias tablas y asi con la sola sesion pueda yo jalar todos los datos de las diversas tablas, ahora bien segun la logica que use para lo que quiero, al iniciar sesion en dicha evaluacion se va a la tabla tb_sesion, busca en el id_sesion el maximo valor (este debe ser la ultima sesion con la cual se entro) luego lo agarra y le suma 1 y lo manda a guardar a la tabla tb_sesion (NO ACTUALIZA), se crea una variable se SESSION a la cual le doy el valor de la sesion k guarde, para que ese id_sesion lo pueda usar en las distintas paginas de la evaluacion y asi ir llenando los demas campos que les dije que tengo en la tabla tb_sesion, espero haberme explicado bien, soy novato en ASP ya que lo mio es el diseño, photoshop y demas, espero me puedan ayudar, les dejo algo del ultimo codigo que ando manejando pero todavia no sale y es que ponerles todo el codigo de la paguina esta en chino porque son 550 lineas y tengo varias consultas, saludos

Código PHP:
<%

    
Dim conn,db

    Set conn 
Server.CreateObject("ADODB.Connection"
    
Set db Server.CreateObject("ADODB.Recordset"
    
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; " "Dbq=" Server.MapPath("base.mdb"


            
dim sesion_cuentasesion_actual
            db
.Open "tb_sesion"conn
            strSQL_uno 
"SELECT MAX('id_sesion') AS id_sesion_max FROM tb_sesion"
            
conn.Execute(strSQL_uno)
            
Set rs conn.Execute(strSQL_uno)
            
sesion_cuenta rs("id_sesion_max")
            
Session("sesion_actual")= sesion_cuenta 1

            rs
.Close

            str_dos 
"INSERT INTO tb_sesion (id_sesion) VALUES ("&Session("sesion_actual")&")"
            
set rs2 conn.Execute(str_dos)
            
rs2.Close
            conn
.Close()
            
Set conn Nothing
            Set db 
Nothing

%> 
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #11 (permalink)  
Antiguo 11/03/2008, 14:29
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: obtener el ultimo de un registro



en esta parte de tu codigo, hay dos errores

Código HTML:
dim sesion_cuenta, sesion_actual
            db.Open "tb_sesion", conn
            strSQL_uno = "SELECT MAX('id_sesion') AS id_sesion_max FROM tb_sesion"
'            conn.Execute(strSQL_uno) dejalo con comillas esto no va
            Set rs = conn.Execute(strSQL_uno)
'            sesion_cuenta = rs("id_sesion_max") error para recojer la variable
'esto debe ser asi
            sesion_cuenta = id_sesion_max
            Session("sesion_actual")= sesion_cuenta + 1
sustituye e intentalo de nuevo
funcionara???
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #12 (permalink)  
Antiguo 11/03/2008, 17:01
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Exclamación Re: obtener el ultimo de un registro

bueno ya cheque lo que me diste y pasa que solo me imprime la variable de sesion con el valor 1 y este 1 sale de la sumatoria, osea que no esta cachando el resultado de la consulta?

Código PHP:


<%
    
Dim conn,dbnombreapellido_papellido_mprofesionficha
    ficha
=request("ficha")

    
Set conn Server.CreateObject("ADODB.Connection"
    
Set db Server.CreateObject("ADODB.Recordset"
    
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; " "Dbq=" Server.MapPath("base.mdb"
    
    
            
dim sesion_cuentasesion_actual
            db
.Open "tb_sesion"conn
            strSQL_uno 
"SELECT MAX('id_sesion') AS id_sesion_max FROM tb_sesion"
            
Set rs conn.Execute(strSQL_uno)
            
sesion_cuenta id_sesion_max
            Session
("sesion_actual")= sesion_cuenta 1

            response
.Write "imprime id_sesion_max " id_sesion_max "<br>"        
            
response.Write "imprime sesion_cuenta " sesion_cuenta "<br>"
            
response.Write  "imprime sesion_actual " Session("sesion_actual"solo imprime este
%> 
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #13 (permalink)  
Antiguo 12/03/2008, 08:29
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: obtener el ultimo de un registro

Cita:
sesion_cuenta = id_sesion_max
debería ser

Cita:
sesion_cuenta = rs("id_sesion_max")
Saludos
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 12:34.