Hola amigos, tengo una pequeña duda, creo que es bastante logica pero ya estoy empezandome a rallarme... a si que la voy a preguntar por si las moscas..
Sigo teniendo nuemrosos problemas con mis conexiones a bases de datos, el server me dice que TOO many client tasks... intento cerrar todas las conexiones que abro...
Tengo una serie de paginas con el siguiente problema...
En el principio del codigo abro la conexion a la base de datos..... y al final de la pagina la cierro...
el problema es que en el medio de la pagina, en mi codigo tengo varios Response.Redirect.... por lo que hay se produce un salto y imagino que nunca llegara a ejecutarse ese cierre de conexion que hago al fuinal de la pagina....
os pongo el codigo de ejemplo:
Código:
<!--#include file="logon.inc"-->
<%
' Proceso la entrada de información en función del tipo de operación
Select Case Request.Form("tipo")
Case "insert"
strTipoInfo="0"
stremail=Replace(Request.Form("email"),"'", """")
strnombre=Replace(Request.Form("nombre"),"'", """")
If Not ISEMAIL(stremail) then
advertencia="La direccion de email introducida es erronea"
Response.Redirect("admin.email.asp?senal=" & advertencia &"&tipo=insert&nom="&strnombre&"&mail="&stremail&"")
End If
If EMAILREPETIDO (stremail) then
advertencia="Ya hay un destinatario en la base de datos con ese E-mail"
Response.Redirect("admin.email.asp?senal=" & advertencia &"&tipo=insert&nom="&strnombre&"&mail="&stremail&"")
End If
SQL="INSERT INTO emails (email, nombre) VALUES"
SQL=SQL &" ('" & stremail &"', '" & strnombre &"');"
Conn.Execute SQL
' Recupero el ultimo valor establecido en el PK
Dim lngUltimo
SQL="SELECT MAX(codemail) AS Ultimo FROM emails;"
Set Snap=Server.CreateObject("ADODB.Recordset")
Snap.Open SQL, Conn
If Not(Snap.EOF And Snap.BOF) Then
If Not(Isnull(Snap.Fields("Ultimo"))) Then
lngUltimo=Snap.Fields("Ultimo")
End If
End If
' Redirijo a la página
Response.Redirect("admin.emails.asp")
Case "update"
stremail=Replace(Request.Form("email"),"'", """")
strnombre=Replace(Request.Form("nombre"),"'", """")
stremail=Replace(Request.Form("email"),"'", """")
If Not ISEMAIL(stremail) then
advertencia="La direccion de email introducida es erronea"
Response.Redirect("admin.email.asp?senal=" & advertencia &"&tipo=insert&nom="&strnombre&"&mail="&stremail&"")
End If
If EMAILREPETIDO (stremail) then
advertencia="Ya hay un destinatario en la base de datos con ese E-mail"
Response.Redirect("admin.email.asp?senal=" & advertencia &"&tipo=insert&nom="&strnombre&"&mail="&stremail&"")
End If
SQL="UPDATE emails SET email='" & stremail &"', nombre='" & strnombre &"'"
SQL=SQL & " WHERE codemail=" & Request.Form("codemail") & ";"
Conn.Execute SQL
' Redirijo a la página
Response.Redirect("admin.emails.asp")
End Select
' Operación de Borrado
If Request.QueryString("tipo")="delete" Then
SQL="DELETE FROM emails WHERE codemail=" & Request.QueryString("codemail") & ";"
Conn.Execute SQL
' Redirijo a la página
Response.Redirect("admin.emails.asp")
End If
%>
<!--#include file="close.inc"-->
En el archivo de inclusion logon abro la conexion, y la cierro en el close.inc...como veis entre medias hay varios response.redirect... mi duda es si realemnte no se esta ejecutnado el close.inc nunca...
Muchas gracias.