Problemas con ASP's

25/06/2004 - 11:56 por Fernando Uranga | Informe spam
Muy buenas:

A ver si alguien me puede ayudar, porque sigo con mis problemas con mis
ASP's.

Me explico. Tenemos una serie de ASP's que usamos para guardar o mostrar
documentos encapsulados en una base de datos SQL Server. Para ello
usamos un OCX desarrollado por nosotros que tiene funciones a tal fin.
El problema es que siejecutamos algún ASP, la primera vez nos funciona
bien, pero a la segunda (y sucesivas veces), se queda "frito" y no
conseguimos que se ejcute. Es más, si tras esto inteamos ejecutar un ASP
que lo único que haga es Response.Write "Hola mundo" no lo hace. Si
cambiamos los ASP's de directorio virtual todo vuelve a funcionar una
sola vez. Me temo que el problema es del control OCX, pero no se me
ocurre qué puede estar pasando. Vuelvo a enviar el código de uno de los
ASP's a ver si algun alma caritativa me da una idea. Y si no es una
idea, por lo menos un puesto de trabajo, porque como no resuelva esto

Gracias de antemano.

Fernando Uranga

******************* Código ASP ********************************
<%option explicit%>
<%response.expires=0%>
<%response.buffer = false %>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
eOOOOOOO
<form name=Formulario>
<%
Dim Test
,sql,conn,nombrefichero,parametrocoddoc,parametrorevision,parametroversion
dim tdatos,coddoc,revision,version,tdatos1,resultado,fallo


Response.Write "Entro"nombrefichero=""
parametrocoddoc = request("CODDOC")
parametrorevision = request("REVISION")
parametroversion = request("VERSION")



Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open application("Conexion")


fallo = 0

if isnull(parametrocoddoc) or parametrocoddoc="" then
parametrocodoc =""
fallo = 1
end if

if isnull(parametrorevision) or parametrorevision="" then
parametrorevision =""
fallo = 1
end if

if isnull(parametroversion) or parametroversion="" then
parametroversion =""
fallo = 1
end if


if fallo = 0 then
sql = "select coddoc,revision,version from doc where
coddoc='"&parametrocoddoc&"' and revision='" &parametrorevision&"' and
version='"&parametroversion&"'"
tdatos = lookup(conn,sql)
if tdatos(0)<>"0" then
coddoc = tdatos(0)
revision = tdatos(1)
version = tdatos(2)
sql = "select nombre from bdo where coddoc='"&coddoc&"' and
revision='"&revision&"' and version='"&version&"'"
tdatos1 = lookup(conn,sql)
nombrefichero = tdatos1(0)

'response.write "Conexion= "& application("conexion") &
"Coddoc = " & cstr(coddoc) & "Revision = " & cstr(revision) & "Version=
" & cstr(version) & "Documento = " &
application("dirdocumentos")&cstr(nombrefichero)

Set Test = Server.CreateObject("Blobsora.UserControl1")
resultado =
Test.ExtraerBDO(application("ConexionOle"),application("BaseDatos"),cstr(coddoc),cstr(revision),cstr(version),application("dirdocumentos")&cstr(nombrefichero),0)
Set Test = Nothing
end if
end if

Conn.close
%>
</form>
</body>
</html>
<%
if nombrefichero="" or nombrefichero="0" then
response.write "Error en el Código "& parametrocoddoc
else
response.write "<script>location=(
'"&application("httpdocumentos")&""&nombrefichero&"');</script>"
end if


function lookUp(Conn, sql1)
dim num, cursor,i,valor
Set cursor=Conn.Execute(sql1)

if Err.Number<>0 then
response.write "<br>Err: " & Err.Description
end if

if (Not cursor.EOF) then
num = cursor.fields.count
ReDim valor(num)
for i=0 to (cursor.fields.count)-1
valor(i)=cursor(i)
next
lookUp=valor
else
ReDim valor(1)
valor(0) = 0
lookUp = valor
end if
cursor.close
end function

%>

Preguntas similare

Leer las respuestas

#1 Matias Iacono
25/06/2004 - 14:22 | Informe spam
Creo que, tal vez, hay un error de conceptos... no se especificamente si te
solucionara el problema, porque nunca lo hice de esta forma.

Preguntas:
El OCX tiene una interfaz?
Muestran algun tipo de pantalla al momento de la ejecucion, desde el
OCX?

Ahora lo otro, cuando vas a trabajar de esta forma, lo ideal es hacer un
DLL, y no un OCX, tienes que tener en cuenta que los OCX trabajan de una
forma un poquito diferente. Piensa en un OCX como otro programa que es
llamado desde un programa especifico. Entones, muchas veces, cuando en un
OCX no se cierran las conexiones a bases de datos como es debido, o queda
haciendo algun proceso, este hara que tu programa no pueda dejar de
funcionar, y muchas veces, no puedas hacerlo correr de nuevo hasta que no lo
detengas a la fuerza.

Como recomendacion, transforma todo lo que tienes en el OCX a un DLL, pero
no solo compilandolo como DLL, si no como proyecto DLL en el VB.

Saludos

"Fernando Uranga" wrote in message
news:
Muy buenas:

A ver si alguien me puede ayudar, porque sigo con mis problemas con mis
ASP's.

Me explico. Tenemos una serie de ASP's que usamos para guardar o mostrar
documentos encapsulados en una base de datos SQL Server. Para ello
usamos un OCX desarrollado por nosotros que tiene funciones a tal fin.
El problema es que siejecutamos algún ASP, la primera vez nos funciona
bien, pero a la segunda (y sucesivas veces), se queda "frito" y no
conseguimos que se ejcute. Es más, si tras esto inteamos ejecutar un ASP
que lo único que haga es Response.Write "Hola mundo" no lo hace. Si
cambiamos los ASP's de directorio virtual todo vuelve a funcionar una
sola vez. Me temo que el problema es del control OCX, pero no se me
ocurre qué puede estar pasando. Vuelvo a enviar el código de uno de los
ASP's a ver si algun alma caritativa me da una idea. Y si no es una
idea, por lo menos un puesto de trabajo, porque como no resuelva esto

Gracias de antemano.

Fernando Uranga

******************* Código ASP ********************************
<%option explicit%>
<%response.expires=0%>
<%response.buffer = false %>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
eOOOOOOO
<form name=Formulario>
<%
Dim Test
,sql,conn,nombrefichero,parametrocoddoc,parametrorevision,parametroversion
dim tdatos,coddoc,revision,version,tdatos1,resultado,fallo


Response.Write "Entro"nombrefichero=""
parametrocoddoc = request("CODDOC")
parametrorevision = request("REVISION")
parametroversion = request("VERSION")



Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open application("Conexion")


fallo = 0

if isnull(parametrocoddoc) or parametrocoddoc="" then
parametrocodoc =""
fallo = 1
end if

if isnull(parametrorevision) or parametrorevision="" then
parametrorevision =""
fallo = 1
end if

if isnull(parametroversion) or parametroversion="" then
parametroversion =""
fallo = 1
end if


if fallo = 0 then
sql = "select coddoc,revision,version from doc where
coddoc='"&parametrocoddoc&"' and revision='" &parametrorevision&"' and
version='"&parametroversion&"'"
tdatos = lookup(conn,sql)
if tdatos(0)<>"0" then
coddoc = tdatos(0)
revision = tdatos(1)
version = tdatos(2)
sql = "select nombre from bdo where coddoc='"&coddoc&"' and
revision='"&revision&"' and version='"&version&"'"
tdatos1 = lookup(conn,sql)
nombrefichero = tdatos1(0)

'response.write "Conexion= "& application("conexion") &
"Coddoc = " & cstr(coddoc) & "Revision = " & cstr(revision) & "Version> " & cstr(version) & "Documento = " &
application("dirdocumentos")&cstr(nombrefichero)

Set Test = Server.CreateObject("Blobsora.UserControl1")
resultado >


Test.ExtraerBDO(application("ConexionOle"),application("BaseDatos"),cstr(cod
doc),cstr(revision),cstr(version),application("dirdocumentos")&cstr(nombrefi
chero),0)
Set Test = Nothing
end if
end if

Conn.close
%>
</form>
</body>
</html>
<%
if nombrefichero="" or nombrefichero="0" then
response.write "Error en el Código "& parametrocoddoc
else
response.write "<script>location=(
'"&application("httpdocumentos")&""&nombrefichero&"');</script>"
end if


function lookUp(Conn, sql1)
dim num, cursor,i,valor
Set cursor=Conn.Execute(sql1)

if Err.Number<>0 then
response.write "<br>Err: " & Err.Description
end if

if (Not cursor.EOF) then
num = cursor.fields.count
ReDim valor(num)
for i=0 to (cursor.fields.count)-1
valor(i)=cursor(i)
next
lookUp=valor
else
ReDim valor(1)
valor(0) = 0
lookUp = valor
end if
cursor.close
end function

%>

Respuesta Responder a este mensaje
#2 Fernando Uranga
25/06/2004 - 15:48 | Informe spam
Buenas:

No, el OCX no tiene interface. Y el problema es que tiene que ser un
OCX, porque tambien lo usamos en otras aplicaciones no Web.

Una pregunta, para instaciar una dll, ¿se hace igual que con el OCX
(Server.CreateObject("Blobsora.UserControl1"))?

Gracias.

Fernando Uranga

Matias Iacono escribió:
Creo que, tal vez, hay un error de conceptos... no se especificamente si te
solucionara el problema, porque nunca lo hice de esta forma.

Preguntas:
El OCX tiene una interfaz?
Muestran algun tipo de pantalla al momento de la ejecucion, desde el
OCX?

Ahora lo otro, cuando vas a trabajar de esta forma, lo ideal es hacer un
DLL, y no un OCX, tienes que tener en cuenta que los OCX trabajan de una
forma un poquito diferente. Piensa en un OCX como otro programa que es
llamado desde un programa especifico. Entones, muchas veces, cuando en un
OCX no se cierran las conexiones a bases de datos como es debido, o queda
haciendo algun proceso, este hara que tu programa no pueda dejar de
funcionar, y muchas veces, no puedas hacerlo correr de nuevo hasta que no lo
detengas a la fuerza.

Como recomendacion, transforma todo lo que tienes en el OCX a un DLL, pero
no solo compilandolo como DLL, si no como proyecto DLL en el VB.

Saludos

"Fernando Uranga" wrote in message
news:

Muy buenas:

A ver si alguien me puede ayudar, porque sigo con mis problemas con mis
ASP's.

Me explico. Tenemos una serie de ASP's que usamos para guardar o mostrar
documentos encapsulados en una base de datos SQL Server. Para ello
usamos un OCX desarrollado por nosotros que tiene funciones a tal fin.
El problema es que siejecutamos algún ASP, la primera vez nos funciona
bien, pero a la segunda (y sucesivas veces), se queda "frito" y no
conseguimos que se ejcute. Es más, si tras esto inteamos ejecutar un ASP
que lo único que haga es Response.Write "Hola mundo" no lo hace. Si
cambiamos los ASP's de directorio virtual todo vuelve a funcionar una
sola vez. Me temo que el problema es del control OCX, pero no se me
ocurre qué puede estar pasando. Vuelvo a enviar el código de uno de los
ASP's a ver si algun alma caritativa me da una idea. Y si no es una
idea, por lo menos un puesto de trabajo, porque como no resuelva esto

Gracias de antemano.

Fernando Uranga

******************* Código ASP ********************************
<%option explicit%>
<%response.expires=0%>
<%response.buffer = false %>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
eOOOOOOO
<form name=Formulario>
<%
Dim Test
,sql,conn,nombrefichero,parametrocoddoc,parametrorevision,parametroversion
dim tdatos,coddoc,revision,version,tdatos1,resultado,fallo


Response.Write "Entro"nombrefichero=""
parametrocoddoc = request("CODDOC")
parametrorevision = request("REVISION")
parametroversion = request("VERSION")



Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open application("Conexion")


fallo = 0

if isnull(parametrocoddoc) or parametrocoddoc="" then
parametrocodoc =""
fallo = 1
end if

if isnull(parametrorevision) or parametrorevision="" then
parametrorevision =""
fallo = 1
end if

if isnull(parametroversion) or parametroversion="" then
parametroversion =""
fallo = 1
end if


if fallo = 0 then
sql = "select coddoc,revision,version from doc where
coddoc='"&parametrocoddoc&"' and revision='" &parametrorevision&"' and
version='"&parametroversion&"'"
tdatos = lookup(conn,sql)
if tdatos(0)<>"0" then
coddoc = tdatos(0)
revision = tdatos(1)
version = tdatos(2)
sql = "select nombre from bdo where coddoc='"&coddoc&"' and
revision='"&revision&"' and version='"&version&"'"
tdatos1 = lookup(conn,sql)
nombrefichero = tdatos1(0)

'response.write "Conexion= "& application("conexion") &
"Coddoc = " & cstr(coddoc) & "Revision = " & cstr(revision) & "Version>>" & cstr(version) & "Documento = " &
application("dirdocumentos")&cstr(nombrefichero)

Set Test = Server.CreateObject("Blobsora.UserControl1")
resultado >>



Test.ExtraerBDO(application("ConexionOle"),application("BaseDatos"),cstr(cod
doc),cstr(revision),cstr(version),application("dirdocumentos")&cstr(nombrefi
chero),0)

Set Test = Nothing
end if
end if

Conn.close
%>
</form>
</body>
</html>
<%
if nombrefichero="" or nombrefichero="0" then
response.write "Error en el Código "& parametrocoddoc
else
response.write "<script>location=(
'"&application("httpdocumentos")&""&nombrefichero&"');</script>"
end if


function lookUp(Conn, sql1)
dim num, cursor,i,valor
Set cursor=Conn.Execute(sql1)

if Err.Number<>0 then
response.write "<br>Err: " & Err.Description
end if

if (Not cursor.EOF) then
num = cursor.fields.count
ReDim valor(num)
for i=0 to (cursor.fields.count)-1
valor(i)=cursor(i)
next
lookUp=valor
else
ReDim valor(1)
valor(0) = 0
lookUp = valor
end if
cursor.close
end function

%>





Respuesta Responder a este mensaje
#3 Matias Iacono
25/06/2004 - 16:26 | Informe spam
Si... es igual... y de cualquier manera, si es un OCX sin interfaz, te
serviria un DLL :D



"Fernando Uranga" wrote in message
news:
Buenas:

No, el OCX no tiene interface. Y el problema es que tiene que ser un
OCX, porque tambien lo usamos en otras aplicaciones no Web.

Una pregunta, para instaciar una dll, ¿se hace igual que con el OCX
(Server.CreateObject("Blobsora.UserControl1"))?

Gracias.

Fernando Uranga

Matias Iacono escribió:
> Creo que, tal vez, hay un error de conceptos... no se especificamente si


te
> solucionara el problema, porque nunca lo hice de esta forma.
>
> Preguntas:
> El OCX tiene una interfaz?
> Muestran algun tipo de pantalla al momento de la ejecucion, desde el
> OCX?
>
> Ahora lo otro, cuando vas a trabajar de esta forma, lo ideal es hacer un
> DLL, y no un OCX, tienes que tener en cuenta que los OCX trabajan de una
> forma un poquito diferente. Piensa en un OCX como otro programa que es
> llamado desde un programa especifico. Entones, muchas veces, cuando en


un
> OCX no se cierran las conexiones a bases de datos como es debido, o


queda
> haciendo algun proceso, este hara que tu programa no pueda dejar de
> funcionar, y muchas veces, no puedas hacerlo correr de nuevo hasta que


no lo
> detengas a la fuerza.
>
> Como recomendacion, transforma todo lo que tienes en el OCX a un DLL,


pero
> no solo compilandolo como DLL, si no como proyecto DLL en el VB.
>
> Saludos
>
> "Fernando Uranga" wrote in message
> news:
>
>>Muy buenas:
>>
>>A ver si alguien me puede ayudar, porque sigo con mis problemas con mis
>>ASP's.
>>
>>Me explico. Tenemos una serie de ASP's que usamos para guardar o mostrar
>>documentos encapsulados en una base de datos SQL Server. Para ello
>>usamos un OCX desarrollado por nosotros que tiene funciones a tal fin.
>>El problema es que siejecutamos algún ASP, la primera vez nos funciona
>>bien, pero a la segunda (y sucesivas veces), se queda "frito" y no
>>conseguimos que se ejcute. Es más, si tras esto inteamos ejecutar un ASP
>>que lo único que haga es Response.Write "Hola mundo" no lo hace. Si
>>cambiamos los ASP's de directorio virtual todo vuelve a funcionar una
>>sola vez. Me temo que el problema es del control OCX, pero no se me
>>ocurre qué puede estar pasando. Vuelvo a enviar el código de uno de los
>>ASP's a ver si algun alma caritativa me da una idea. Y si no es una
>>idea, por lo menos un puesto de trabajo, porque como no resuelva


esto
>>
>>Gracias de antemano.
>>
>>Fernando Uranga
>>
>>******************* Código ASP ********************************
>><%option explicit%>
>><%response.expires=0%>
>><%response.buffer = false %>
>><html>
>><head>
>><title></title>
>><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
>></head>
>><body>
>>eOOOOOOO
>><form name=Formulario>
>><%
>>Dim Test

,sql,conn,nombrefichero,parametrocoddoc,parametrorevision,parametroversion


>>dim tdatos,coddoc,revision,version,tdatos1,resultado,fallo
>>
>>
>>Response.Write "Entro"nombrefichero=""
>>parametrocoddoc = request("CODDOC")
>>parametrorevision = request("REVISION")
>>parametroversion = request("VERSION")
>>
>>
>>
>>Set Conn = Server.CreateObject("ADODB.Connection")
>>Conn.Open application("Conexion")
>>
>>
>>fallo = 0
>>
>>if isnull(parametrocoddoc) or parametrocoddoc="" then
>>parametrocodoc =""
>>fallo = 1
>>end if
>>
>>if isnull(parametrorevision) or parametrorevision="" then
>>parametrorevision =""
>>fallo = 1
>>end if
>>
>>if isnull(parametroversion) or parametroversion="" then
>>parametroversion =""
>>fallo = 1
>>end if
>>
>>
>>if fallo = 0 then
>>sql = "select coddoc,revision,version from doc where
>>coddoc='"&parametrocoddoc&"' and revision='" &parametrorevision&"' and
>>version='"&parametroversion&"'"
>>tdatos = lookup(conn,sql)
>>if tdatos(0)<>"0" then
>>coddoc = tdatos(0)
>>revision = tdatos(1)
>>version = tdatos(2)
>>sql = "select nombre from bdo where coddoc='"&coddoc&"' and
>>revision='"&revision&"' and version='"&version&"'"
>>tdatos1 = lookup(conn,sql)
>>nombrefichero = tdatos1(0)
>>
>> 'response.write "Conexion= "& application("conexion") &
>>"Coddoc = " & cstr(coddoc) & "Revision = " & cstr(revision) & "Version> >>" & cstr(version) & "Documento = " &
>>application("dirdocumentos")&cstr(nombrefichero)
>>
>>Set Test = Server.CreateObject("Blobsora.UserControl1")
>>resultado > >>
>
>


Test.ExtraerBDO(application("ConexionOle"),application("BaseDatos"),cstr(cod
>


doc),cstr(revision),cstr(version),application("dirdocumentos")&cstr(nombrefi
> chero),0)
>
>> Set Test = Nothing
>>end if
>>end if
>>
>>Conn.close
>>%>
>></form>
>></body>
>></html>
>><%
>>if nombrefichero="" or nombrefichero="0" then
>>response.write "Error en el Código "& parametrocoddoc
>>else
>>response.write "<script>location=(
>>'"&application("httpdocumentos")&""&nombrefichero&"');</script>"
>>end if
>>
>>
>>function lookUp(Conn, sql1)
>>dim num, cursor,i,valor
>>Set cursor=Conn.Execute(sql1)
>>
>>if Err.Number<>0 then
>>response.write "<br>Err: " & Err.Description
>>end if
>>
>>if (Not cursor.EOF) then
>> num = cursor.fields.count
>> ReDim valor(num)
>> for i=0 to (cursor.fields.count)-1
>> valor(i)=cursor(i)
>> next
>> lookUp=valor
>> else
>>ReDim valor(1)
>> valor(0) = 0
>>lookUp = valor
>>end if
>> cursor.close
>>end function
>>
>>%>
>>
>
>

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida