Error BD *.mdb y ASP

Hola Manolo, como estás..!
En esta oportunidad recurro a tus conocimientos a ver si me puedes sacar de una duda que tengo respecto al siguiente código:
<%
clave=Cint(request.querystring("mivariable"))
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("ALMACEN_2000.mdb")
SQL="DELETE FROM CIUDADES where CODCIUDAD='"& clave &"'"
oConn.Execute(SQL)
response.Write("ha eliminado satisfactoriamente el registro de la base de datos")
%>
Este código funciona correctamente si el campo CODCIUDAD de la tabla CIUDADES es de tipo texto, pero originalmente el tipo de datos era autonumérico y si lo dejo autonumérico me sale el siguiente error:
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de datos en la expresión de criterios.
/estudio/eliminar.asp, línea 13
donde la línea 13 es : oConn.Execute(SQL)
* la primer pregunta es, como hago para que el código funcione con otro tipo de datos que no sea texto??????
Como tuve ese gran inconveniente decidí dejar el campo como texto y hacer que la clave se generara aleatoriamente y como resultado se generan claves como esta: msnyvruysmghunr.
Hasta ahí todo bien, entonces empleé este mismo código para eliminar la información de otra tabla y oh sorpresa...
¡ En esta ocasión me da el mensaje "ha eliminado satisfactoriamente.." pero al volver a listar la tabla aparece el registro en la lista...
En vista de lo anterior busqué otros métodos para eliminar los mismos datos y ahora aparece el siguiente error
Tipo de error:
ADODB.Recordset (0x800A0BCD)
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.
ya verifiqué que BOF y EOF ambos son false
La verdad ya no entiendo que pasa, porque creo que las cosas las estoy haciendo bien... :(
Agradezco cualquier ayuda tuya...
1

1 respuesta

Respuesta
1
En principio para texto esta bien escrito si bien para campos autonumericos o nuemricos y dobles , el caso es el mismo , en las clausulas where la clave debe ir sin comillas simples
where cod_ciudad="&clave
En cuanto al mensaje satisfactorio es normal que te salga lo de que ha eliminado satisfactoriametne pues en ningún lugar le preguntas si ha ido bien la ejecución por lo tanto siempre que se ejecute, borre o no te va a imprimir eso
Intenta capturar los errores con
On Error Resume Next
Esto lo que hace es que no se interrumpa la ejecucino de asp y siga hacia adelante,
Más tarde y después de ejecutar la sql compruebas la variable Err.Description que si esta llena es que hay errores por ejemplo
if Err.Description<>"" then
response.write(Err.Description)
else
response.write("mensaje satisfacotrio")
end if

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas