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

Poner en una variable un campo autonumerico

Estas en el tema de Poner en una variable un campo autonumerico en el foro de ASP Clásico en Foros del Web. Mi problema esq tengo relacionadas unas tablas. Su clave es autonumerica, y para relacionarla tengo q llevar esa clave a otra tabla. Despues de grabar ...
  #1 (permalink)  
Antiguo 06/04/2006, 08:27
 
Fecha de Ingreso: agosto-2005
Mensajes: 221
Antigüedad: 18 años, 9 meses
Puntos: 4
Poner en una variable un campo autonumerico

Mi problema esq tengo relacionadas unas tablas. Su clave es autonumerica, y para relacionarla tengo q llevar esa clave a otra tabla.

Despues de grabar datos en la 1º tabla, correctamente, hayo la clave máxima para llevarla a una variable:
Cita:
<%
conexion5= new ActiveXObject("ADODB.Connection")
registro5=new ActiveXObject("ADODB.Recordset")
conexion5.Open ("datos")
Fnc_Sql = "Select max(IdEmpresa) from 902_DATOS_GENERALES "
registro5.Open (Fnc_Sql, conexion5, 3, 0x0002)
Id_New = Fnc_Sql
registro5.Close()
conexion5.close()
%>
Y asi en otra asp guardo los datos q he introducido despues de ese código, para la otra tabla relacionada.Pero no me guarda esa clave. Ese Id_New. Me deja el campo vacio.

Cita:
<%
conexion4=new ActiveXObject("ADODB.Connection")
registro4=new ActiveXObject("ADODB.Recordset")
conexion4.Open ("datos")
x="select * from 903_OTRAS_ACTIVIDADES where DesOtrasActividades='"+Request.Form("desactividade s")+"'"
registro4.Open (x, conexion4, 3, 0x0002)

if(registro4.EOF)
{
registro4.Addnew ()
registro4("DesOtrasActividades") = Request.form ("desactividades")
registro4("IdEmpresa") = Request.Form ("Id_New")
registro4.Update()

Response.Write("Datos de otras actividades guardados")
}

else
{
Response.write ("Error")
}
registro4.close()
conexion4.close()
%>

Alguien sabe donde podria estar el error? ¿Xq no me lleva el maximo a esa variable? Muchas gracias, saludos.
  #2 (permalink)  
Antiguo 06/04/2006, 09:41
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 8 meses
Puntos: 2
Veamos... yo haría lo siguiente:
Fnc_Sql = "Select max(IdEmpresa) AS Maximo from 902_DATOS_GENERALES "
registro5.Open (Fnc_Sql, conexion5, 3, 0x0002)

y luego
Id_New = registro5.fields.item(Maximo)

Espero esto te lo solucione
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #3 (permalink)  
Antiguo 06/04/2006, 09:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 221
Antigüedad: 18 años, 9 meses
Puntos: 4
Muchas gracias x ayudarme.

Me dice q Maximo no esta definido.
  #4 (permalink)  
Antiguo 06/04/2006, 10:25
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 8 meses
Puntos: 2
Código:
Fnc_Sql = "Select max(IdEmpresa) AS Maximo from 902_DATOS_GENERALES "
Te fijaste de colocar bien el alias en la consulta sql??
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #5 (permalink)  
Antiguo 06/04/2006, 10:34
 
Fecha de Ingreso: agosto-2005
Mensajes: 221
Antigüedad: 18 años, 9 meses
Puntos: 4
Si esta todo tal y como tu lo has puesto.
El IdEmpresa es el autonumerico. La tabla 902_DATOS_GENERALES, y a la select la he llamado Fnc_Sql.

No entiendo xq sigue dandome problemas esta select...
  #6 (permalink)  
Antiguo 06/04/2006, 10:48
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 8 meses
Puntos: 2
Te fijaste si te queda cargado el valor de Id_New en el formulario?
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #7 (permalink)  
Antiguo 06/04/2006, 10:50
 
Fecha de Ingreso: agosto-2005
Mensajes: 221
Antigüedad: 18 años, 9 meses
Puntos: 4
Ese es el problema q tengo. Q me da la impresion q no graba nada en el Id_new y x eso en la 2º tabla ese campo queda en blanco.

Pero no se xq no lo graba con el select, diciendo q grabe el mayor. Es una cosa bastante rara.
  #8 (permalink)  
Antiguo 08/04/2006, 06:42
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Id_New = registro5("Maximo")

si usas sql server, después de insertar el primer registro haces
Código:
Set rsId = conn.Execute("SELECT @@IDENTITY")
y en rsId(0) tendrás el id

si usas mysql, después de insertar el primer registro haces
Código:
set rsId=conn.Execute("SELECT LAST_INSERT_ID();")
y ya me he cansado de escribir....

Última edición por trasgukabi; 08/04/2006 a las 06:51
  #9 (permalink)  
Antiguo 10/04/2006, 02:00
 
Fecha de Ingreso: agosto-2005
Mensajes: 221
Antigüedad: 18 años, 9 meses
Puntos: 4
Al final lo q ue he hecho ha sido mostrar el ultimo IdEmpresa.
Ahora pensaré como llevarlo a otro form.
Gracias x las respuestas. 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 15:14.