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

Problema con registros BD con ASP

Estas en el tema de Problema con registros BD con ASP en el foro de ASP Clásico en Foros del Web. Hola. En una base de datos puedo insertar sin dificultad un registro, pero cuando lo quiero MODIFICAR o BORRAR me da éste error en la ...
  #1 (permalink)  
Antiguo 01/12/2004, 18:38
 
Fecha de Ingreso: diciembre-2004
Mensajes: 2
Antigüedad: 19 años, 6 meses
Puntos: 0
Problema con registros BD con ASP

Hola.
En una base de datos puedo insertar sin dificultad un registro, pero cuando lo quiero MODIFICAR o BORRAR me da éste error en la línea Set RS = Conn.Execute(sSQL) :

Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/Carsipe/AVIS/VEHICLES/esborrar2_reg_Avis.asp, line 18

En insertar registro, con esa misma sentencia funciona correctamente!!

parte del código (de modificar) es:
.......
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=" & Server.MapPath("Vehicles_AVIS.mdb"))

'Creem la sentència SQL i la executem

sSQL="Update Vehicles Set Model='" & Model & "' Where Num='" & Num & "'"
sSQL="Update Vehicles Set Marca='" & Marca & "' Where Num='" & Num & "'"
sSQL="Update Vehicles Set Matricula='" & Matricula & "' Where Num='" & Num & "'"
sSQL="Update Vehicles Set Km='" & Km & "' Where Num='" & Num & "'"
sSQL="Update Vehicles Set Preu='" & Preu & "' Where Num='" & Num & "'"

'Executem la ordre
Set RS = Conn.Execute(sSQL)
........

para borrar, parte del còdigo és:
.......
Num=Request.Form("Num")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=" & Server.MapPath("Vehicles_AVIS.mdb"))

'Creem la sentència SQL i la executem
sSQL="Delete From Vehicles Where Num='" & Num & "'"
Set RS = Conn.Execute(sSQL)
.........

en todos los artículos y ejemplos de còdigo que he visto esto pareceria correcto, pero... no va!

Alguien me podria decir donde està el error.
Grácias de antemano

Última edición por Carsipe; 01/12/2004 a las 18:40
  #2 (permalink)  
Antiguo 01/12/2004, 18:53
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
ESTO ES PARA ACTUALIZAR

' Tenemos que especificar un Cursor y un Lock (cerrojo) que permitan editar.
' Cursor=adOpenKeyset
rs.CursorType=1
' Lock=adLockOptimistic
rs.LockType=2

SQL="SELECT Nombre, Apellido, Edad FROM Empleados WHERE " & _
"Nombre='Paco' AND Apellido='Gómez' AND Edad=35;"
rs.Open SQL, oConn

rs.Fields(Edad)=25

'Guardamos los cambios
rs.Update



ESTO ES PARA BORRAR
SQL="DELETE FROM Empleados WHERE Nombre='Paco' AND Apellido='Gómez' AND Edad=35;"'Ejecutamos la sentenciaoConn.Execute(SQL)

Para borrar a través de ADO, hacemos lo siguiente:

' Tenemos que especificar un Cursor y un Lock (cerrojo)' que permitan en este caso, borrar.' Cursor=adOpenKeysetrs.CursorType=1' Lock=adLockOptimisticrs.LockType=2SQL="SELECT Nombre, Apellido, Edad FROM Empleados WHERE " & _ "Nombre='Paco' AND Apellido='Gómez' AND Edad=35;"rs.Open SQL, oConn'Borramos el registrors.Delete'Guardamos los cambiosrs.Update

O CHECA LA PAGINA
http://www.aspfacil.com/articulos/tododb.asp
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO

Última edición por sjam7; 01/12/2004 a las 18:56
  #3 (permalink)  
Antiguo 02/12/2004, 14:16
 
Fecha de Ingreso: diciembre-2004
Mensajes: 2
Antigüedad: 19 años, 6 meses
Puntos: 0
Sonrisa Ya he solucionada el problema:

La solución, un ' de más.
Se recoge de la base de datos los campos para modificarlos, en función del número de registro (Autonumérico)
En el archivo ASP a ese número lo tratava como a un "texto"

el error està en ésta instrucción:
..............
sSQL="Update Vehicles Set Marca='"&Marca&"' , Model='" & Model & "', Matricula='" & Matricula & "', Km='" & Km & "', Preu='" & Preu & "' Where Num='" & Num & "'"

Set RS = Conn.Execute(sSQL)
................

en vez de .......... Where Num=" & Num & ""
sin el ' que enmarca a "&Num&"

En fin, he puesto el código para que se aclare mejor el error, para que le pueda servir de solución a alguien que se encuentre en un problema parecido...

Gràcias FORO!!
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 22:51.