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

responder a errores de odbc

Estas en el tema de responder a errores de odbc en el foro de ASP Clásico en Foros del Web. como puedo responder a errores de la conexion de base de datos, tengo una sql2000 , la tabla de base de datos tiene un campo ...
  #1 (permalink)  
Antiguo 13/11/2003, 07:03
 
Fecha de Ingreso: enero-2002
Mensajes: 68
Antigüedad: 23 años, 4 meses
Puntos: 0
responder a errores de odbc

como puedo responder a errores de la conexion de base de datos, tengo una sql2000 , la tabla de base de datos tiene un campo "n_registro" que es la clave de la tabla
cuando ingreso mediante un formulario un dato que ya existe en el campo n_registro me da el sgte error..

"Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]Infracción de la restricción PRIMARY KEY 'PK_LIBRO'. No se puede insertar una clave duplicada en el objeto 'LIBRO'.
/admin/secure/process1.asp, line 49 "

como puedo hacer que en vez que me de el mensaje de error , me redireccione a otra pagina .???

gracias.
  #2 (permalink)  
Antiguo 13/11/2003, 07:17
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 22 años, 2 meses
Puntos: 9
Yo tengo una BDD ACCES pero luego la migro a SQL 2000


y hago lo siguiente





sql = "SELECT * FROM Tabla_A_Consultar Where Algo = '"&alog&"';"
Set res = conexion.Execute(sql)
If res.BOF and res.EOF then
Variable1 = request.form ("campo_form")
sql = "INSERT INTO Tabla (campo1) VALUES ('" & Variable1&"');"
Set Res = conexion.Execute(sql)
conexion.Close
Set conexion = Nothing %>

<form name="form1" method="post" action="menumedico.asp">
<div class ="letras" align="center">La nueva actividad ha sido ingresada
<p>
<input type="submit" name="Submit" value="Aceptar">
</p>
</div>
</form>
<%else%>

<% res.Close
Set res = Nothing
conexion.Close
Set conexion = Nothing
%>
<form name="form2" method="post" action="actividades.asp">
<div class = "letras" align="center">
<p>
ACTIVIDAD YA EXISTE
</p>
<p>
<input type="submit" name="Submit2" value="Aceptar">
</p>
</div>
</form>
<%end if%>
__________________
Buena Vida...
Francisco
  #3 (permalink)  
Antiguo 14/11/2003, 13:24
 
Fecha de Ingreso: noviembre-2003
Ubicación: Distrito Federal
Mensajes: 225
Antigüedad: 21 años, 5 meses
Puntos: 0
La anterior es una buena forma. Yo utilizo otro metodo, que es mediante deteccion de errores.
Colocas esta sentencia arriba de todo tu codigo:

On Error Resume Next

Esta sentencia lo que hace es habilitar la deteccion de errores en el codigo.
Despues ejecutas tu sentencia de insert e inmediatamente abajo colocas esta sentencia:

If Err.Number<>0 Then
Response.Redirect "a_la_pagina_que_deseas.asp"
End If

Esta sentencia identifica un error al momento de ejecutar la sentencia de insert y redireccionas al usuario a otro lado. Cabe mencionar que esta sentencia te detecta todo tipo de errores, incluso si no es por el problema de duplicidad, por lo que puedes particularizar el metodo de esta forma:

'Escribes el numero de error que te genera un duplicado
If Err.Number=80040e14 Then
Response.Redirect "duplicado.asp"
Else If Err.Number<>0 Then
Response.Redirect "otro_error.asp"
End If

Espero te sirva
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 16:26.