Campo autonumérico

Hola rcbellido. He escrito este pequeño código que te adjunto para borrar un campo de una base de datos access. Para borrar el campo tengo que comparar el numero que capturo de un formulario con el campo "id" de la base de datos. Este campo es de tipo AUTONUMÉRICO. El problema es que nunca encuentra un campo que coincida, sin embargo, si cambio el tipo de datos de este campo por el tipo TEXTO si que funciona. Pero yo lo que necesito es que se AUTONUMÉRICO.
¿Para este tipo de datos hay que hacer algo especial para comparar el numero que obtengo del formulario con el numero AUTONUMÉRICO de la base de datos?
Gracias.
<%
Dim ConexionBD,rs
Set ConexionBD = Server.CreateObject("ADOdb.Connection")
ConexionBD.Open "DSN=xxx-xxx"
Set rs = ConexionBD.Execute("select * from Tabla1")
%>
<%
Dim borrar,id,Aceptado
borrar = Request.Form("id")
Aceptado = "False"
DO UNTIL (rs.eof OR Aceptado="True")
IF (borrar = rs("id")) then
Aceptado="True"
END IF
IF (Aceptado<>"True") then
rs.MoveNext
END IF
LOOP
%>
<%IF Aceptado="True" then
rs.Delete
rs.Update
Response.Write(" El socio ha sido borrado con éxito ")
rs.Close
Set rs = Nothing
ELSE
Response.Write("No se ha podido borrar el socio, compruebe que ha escrito correctamente el ID")
END IF
%>

1 Respuesta

Respuesta
1
Sinceramente, no lo se. Por eso he preguntado a un colega y esto es lo que me ha respondido:
Yo no lo haría así, yo capturaría el id, construiría la sql "delete * from ..." y la ejecutaría, no es de fiar la manera que lo esta haciendo, puede petar en cualquiermomento y además tiene que tener el objeto recordset todos el tiempo abierto con lo cual bloqueos y esas cosas que no tengo yo nunca en cuenta :P.
Con respecto al código creo que el problema se solucionaría si convirtiera el dato de request. form("id") a entero con un cint(creo que en asp también existe, ya que el problema creo que esta que al capturarlo así la variable guarda "numero" en vez de numero que es lo que tiene la bd y por lo que falla la comparación.
No se si te servirá, pero es lo más que puedo hacer.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas