Estoy realizando mi proyecto fin de carrera con ASP y me ha surgido un
pequeño problema con las BD.
Tomo todos los datos desde un formulario y compruebo que no exista ningun
registro de ese usuario en esa fecha (lanzando una consulta a la base de
datos).
Si no existe ningún dato de ese usuario en esa fecha, la propiedad EOF de la
consulta debería ser = True, con lo que compongo el texto de la insercion y
la ejecuto.
En el caso de que exista algún dato de ese usuario en esa fecha, la
propiedad EOF debería ser FALSE y no relizarse la inserción... pero también
entra a componer la orden de inserción y a ejecutarla... con lo que salta un
error.
Aquí esta el código:
Dim conexion, registros,
basedatos,numero,consulta,numero2,registros_afectados, orden
consulta="SELECT * FROM LABORATORIO WHERE Num_id=' " Session("num_pac_id") +
"'" + " AND FECHA LIKE '" + request.form("fecha")+"'"
basedatos = Server.MapPath("base\pacientes.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & basedatos &
";"
Set registros = conexion.Execute(consulta)
if registros.EOF then 'Si no ese paciente no tiene ningún análisis en esa
fecha, se procede a la inserción
orden="INSERT INTO LABORATORIO VALUES ('"
orden=orden + Session("num_pac_id")+"' ,'"+ request.form("fecha")+"'
,'"+request.form("urea")+"' ,'"
' (...) unas cuantas lineas para componer la inserción
conexion.Execute(orden),registros_afectados
if registros_afectados=0 then %><h1>No ha sido posible realizar la
inserción</h1><% end if
if registros_afectados=1 then %><h1>La inserción se ha llevado a cabo con
éxito </h1><% end if
else%>
<h1>No es posible realizar la inserción</h1><br><h2>El paciente ya tiene
un análisis con fecha</h2>
El texto de la inserción está bien y el de la consulta anterior también. Lo
de usar el método EOF para controlar que no hay resultado lo he probado en
otras partes del proyecto y si que funciona bien.
Muchas gracias de antemano. Ciao
Leer las respuestas