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

Traer id del mismo formulario

Estas en el tema de Traer id del mismo formulario en el foro de ASP Clásico en Foros del Web. Hola,, tengo un formulario en asp que se almacena en una base de datos en SQL,, los campos son: nombre expediente comentarios autorizo en la ...
  #1 (permalink)  
Antiguo 13/04/2005, 12:10
Avatar de ruben_vmb  
Fecha de Ingreso: noviembre-2003
Ubicación: Mex
Mensajes: 1.325
Antigüedad: 20 años, 6 meses
Puntos: 0
Traer id del mismo formulario

Hola,, tengo un formulario en asp que se almacena en una base de datos en
SQL,, los campos son:
nombre
expediente
comentarios
autorizo
en la base de sql tengo un id que va creciendo dependiendo del numero de
registro,
1, 2, 3
lo que quisiera es que cuando alguien llene el registro y le de enviar, le
aparezca una ventana que le diga que su numero de registro es el que en ese
momento va, para que lo anote y lo podramos verificar despues por medio
de ese numero,, espero me halla dado a entender.
Garcias
  #2 (permalink)  
Antiguo 13/04/2005, 12:16
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Tienes que hacer un query inmediatamente después de la incersión, si estás trabajando con SQL o Access y tu campo autonumérico es el id de la tabla puedes hacer lo siguiente:

SQL = "INSERT INTO tabla(campos) VALUES(valores); SELECT @@identity FROM tabla as mi_id"

y lo recuperas como rs("mi_id")

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 13/04/2005, 12:50
Avatar de ruben_vmb  
Fecha de Ingreso: noviembre-2003
Ubicación: Mex
Mensajes: 1.325
Antigüedad: 20 años, 6 meses
Puntos: 0
disculpa mi desconocimiento en ASP pero no te entendi mucho,, osea el campo mi_id
no lo pongo pero se inserta aunque el mismo SQL lo incremente por default, o lo quito
y despues lo recupero pero en la otra hoja asp,, supongo
en verdad me ayudaria que me explicaras mejor
sorry por tanta lata
Bye
  #4 (permalink)  
Antiguo 13/04/2005, 12:58
 
Fecha de Ingreso: diciembre-2004
Ubicación: Bs. As. - Argentina
Mensajes: 200
Antigüedad: 19 años, 6 meses
Puntos: 0
el campo mi_id es el autnumérico. Justamente x ser autonumérico no debes ponerlo en la sentencia.
por ser "autonumérico" se incrementa solo y vos no tenes que hacer nada al respecto.
resumiendo.
set oCon =server.createobject("ADODB.Connection")

set oRs =server.createobject("ADODB.recordset")
oCon.open Tu_connection_string
cSQL = "INSERT INTO tabla(campo1, campo2, ....., campoN) VALUES(valor1, valor2,.....,ValorN); SELECT @@identity FROM tabla as mi_id"
ors.open cSQL, oCon
id = oRs.fields("ni_id")

lo escribí de memoria, puede tener algun error de sintaxis.
__________________
Javo.
www.thesitewatcher.com
Monitoreo y Auditoría de Sitios de Internet
  #5 (permalink)  
Antiguo 13/04/2005, 13:34
 
Fecha de Ingreso: abril-2005
Mensajes: 137
Antigüedad: 19 años, 2 meses
Puntos: 0
Aconsejo que trabajes de la siguiente forma para que te puedas guiar de mejor manera

Dim Cnn
Dim RsUltimo
Dim SQL
Set Cnn = Server.CreateObject("ADODB:Connection")
Cnn.Open Conection_String

//Realizas la insercion:
SQL = "Insert into tabla (nombre, expediente, comentarios, autorizo) Values (val_nombre, val_expediente,val_comentarios, val_autirzo)
Cnn.Execute SQL

//Buscas el ultimo Registro hecho
Set RsUltimo = Server.CreateObject("ADODB.Recordset")
SQL = "Select Top 1 id From Tabla Order By id Desc"
RsUltimo.Open SQL, Cnn, 3

//Muestra un Mensaje con el numero de id
Msgbox "Ultimo registro: " & RsUltimo("id")
  #6 (permalink)  
Antiguo 13/04/2005, 13:36
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 4 meses
Puntos: 2
Cita:
Iniciado por marcocho2005
Aconsejo que trabajes de la siguiente forma para que te puedas guiar de mejor manera

Dim Cnn
Dim RsUltimo
Dim SQL
Set Cnn = Server.CreateObject("ADODB:Connection")
Cnn.Open Conection_String

//Realizas la insercion:
SQL = "Insert into tabla (nombre, expediente, comentarios, autorizo) Values (val_nombre, val_expediente,val_comentarios, val_autirzo)
Cnn.Execute SQL

//Buscas el ultimo Registro hecho
Set RsUltimo = Server.CreateObject("ADODB.Recordset")
SQL = "Select Top 1 id From Tabla Order By id Desc"
RsUltimo.Open SQL, Cnn, 3

//Muestra un Mensaje con el numero de id
Msgbox "Ultimo registro: " & RsUltimo("id")

me quitaste el mensaje de la teclas ,
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #7 (permalink)  
Antiguo 13/04/2005, 13:37
Avatar de ruben_vmb  
Fecha de Ingreso: noviembre-2003
Ubicación: Mex
Mensajes: 1.325
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola tengo esto

<% Dim a, b, c, d, e, f, g, cnn, SR, strSQL
Set cnn = Server.CreateObject("ADODB.Connection")
set oRs =server.createobject("ADODB.recordset")

cnn.open "burn1"
a=Request.Form("nombre")
b=Request.Form("exp")
c=Request.Form("dg")
d=Request.Form("area")
e=Request.Form("autorizo")
f=Request.Form("motivo")
g=Request.Form("contenido")
strSQL = "insert into burn1 (nombre, exp, dg, area, autorizo, motivo, contenido ) values ('"&a& "', '"&b& "','"&c& "','"&d& "','"&e&"','"&f& "','"&g& "' ); SELECT @@identity FROM burn1 as id "
cnn.Execute(strSQL)
ors.open strSQL, cnn
id = oRs.fields("id")%>

<%Response.Write("Registro Exitoso")%>
<% Cnn.close
Set Cnn= nothing%>

El campo en SQL se llama id

Me sale un error que dice
Tipo de error:
ADODB.Recordset (0x800A0CC1)
No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.
/intranet/burn1.asp, line 95
La linea 95 tiene
id = oRs.fields("id")%> de donde sale el id= no se si ponerle esto auqnue tambien sale
error <%=ors("id")%>
  #8 (permalink)  
Antiguo 13/04/2005, 13:41
 
Fecha de Ingreso: abril-2005
Mensajes: 137
Antigüedad: 19 años, 2 meses
Puntos: 0
ors.open strSQL, cnn
id = oRs.fields("id")%>

Al hacer esa consulta tratas de insertar nuevamente
mejor trabaja con el query que te mande hace un moemento

//Buscas el ultimo Registro hecho
Set RsUltimo = Server.CreateObject("ADODB.Recordset")
SQL = "Select Top 1 id From Tabla Order By id Desc"
RsUltimo.Open SQL, Cnn, 3

//Muestra un Mensaje con el numero de id
Msgbox "Ultimo registro: " & RsUltimo("id")

eso te funcionara muy bien
  #9 (permalink)  
Antiguo 13/04/2005, 14:10
Avatar de ruben_vmb  
Fecha de Ingreso: noviembre-2003
Ubicación: Mex
Mensajes: 1.325
Antigüedad: 20 años, 6 meses
Puntos: 0
oye marcocho2005 antes que nada muchas muchas gracias y a los demas tambien
me sale este error

Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A0046)
Permiso denegado: 'Msgbox'
/intranet/burn1.asp, line 103
  #10 (permalink)  
Antiguo 13/04/2005, 14:12
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Nope...el msgbox no puede ser una función en el servidor, pues estarías abriendo un msgbox en él, que no te serviría de ná necesitas hacerlo en el cliente mediante las etiquetas de script, ya sea que utilices VB(No te lo recomiendo) o un alert en javascript.


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 13/04/2005, 14:18
Avatar de ruben_vmb  
Fecha de Ingreso: noviembre-2003
Ubicación: Mex
Mensajes: 1.325
Antigüedad: 20 años, 6 meses
Puntos: 0
ok quede igual jiji
  #12 (permalink)  
Antiguo 13/04/2005, 14:24
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Lo siento, es que ando a la carrera:

<%
codigo asp
%>
<script language="javascript">
alert("Ultimo registro: " + <%=RsUltimo("id")%>);
</script>

salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 13/04/2005, 15:11
Avatar de ruben_vmb  
Fecha de Ingreso: noviembre-2003
Ubicación: Mex
Mensajes: 1.325
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias asi quedo bien,,, masters
Bye
  #14 (permalink)  
Antiguo 14/04/2005, 09:07
Avatar de ruben_vmb  
Fecha de Ingreso: noviembre-2003
Ubicación: Mex
Mensajes: 1.325
Antigüedad: 20 años, 6 meses
Puntos: 0
Oye u_goldman como puedo hacer que la ventanita de java sea mas grande y la letra igual,,
Tambien me gustaria saber como puedo en el formulario que tengo adjuntar archivos,
Gracias
  #15 (permalink)  
Antiguo 02/05/2005, 07:44
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Saludos.

En PHP+MYSQL existe esto:

mysql_insert_id();

Que captura el ID asignado al ultimo registro ingresado.

En ASP+SQL No existe algo igual??
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
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 23:08.