no coinciden los tipos

19/12/2006 - 12:54 por raul | Informe spam
tengo el siguiente código en un servidor de páginas web:


<%
usuario=replace(request.form("usuario"),"'","")
clave=replace(request.form("clave"),"'","")
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\usuarios.mdb;"
set objRS = CreateObject("ADODB.Recordset")
strSQL="Select * from usuarios where nombre='" & usuario & "' and clave= '"
& clave & "'"
objRS.Open strSQL, oConn
Set oConn1 = Server.CreateObject("ADODB.Connection")
oConn1.ConnectionString = clinica
oConn1.Open
if not objRS.eof then
if objRS("nombre")=usuario and objRS("clave")=clave then
'response.write("bien")
session("autorizacion")= objRS("permiso")
session("usuario") = objRS("nombre")
session("nombre") = objRS("apellidos")
session("clave") = objRS("clave")
session("plantilla") = objRs("plantilla")
session("servicio") = objRS("servicio")
session.timeout = 5

Funciona perfectamente, el problema lo he tenido cuando he puesto la página
en otro servidor. Me aparece el siguiente error:

"Error de Microsoft VBScript en tiempo de ejecución error '800a000d'
No coinciden los tipos "

Sin embargo si sustituyo la línea:

if objRS("nombre")=usuario and objRS("clave")=clave then

por

if Cstr(objRS("nombre")) = usuario and Cstr(objRS("clave")) = clave then

me funciona

¿Quisiera saber que tengo que hacer para que me funcionen lo dos servidores
de igual forma?
 

Leer las respuestas

#1 Matias Iacono
19/12/2006 - 14:15 | Informe spam
Deja la conversion explicita tal cual la muestras en la segunda linea.

Ten en cuenta que el VBScript no puedes declarar tipos directamente, por lo
que en algunos casos puedes tener este tipo de problemas.

La recomendacion, es que conviertas las dos variables al tipo de dato
especifico antes de hacer la comparacion.

Saludos.

Microsoft MVP
Orador Regional INETA


"raul" wrote:

tengo el siguiente código en un servidor de páginas web:


<%
usuario=replace(request.form("usuario"),"'","")
clave=replace(request.form("clave"),"'","")
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\usuarios.mdb;"
set objRS = CreateObject("ADODB.Recordset")
strSQL="Select * from usuarios where nombre='" & usuario & "' and clave= '"
& clave & "'"
objRS.Open strSQL, oConn
Set oConn1 = Server.CreateObject("ADODB.Connection")
oConn1.ConnectionString = clinica
oConn1.Open
if not objRS.eof then
if objRS("nombre")=usuario and objRS("clave")=clave then
'response.write("bien")
session("autorizacion")= objRS("permiso")
session("usuario") = objRS("nombre")
session("nombre") = objRS("apellidos")
session("clave") = objRS("clave")
session("plantilla") = objRs("plantilla")
session("servicio") = objRS("servicio")
session.timeout = 5

Funciona perfectamente, el problema lo he tenido cuando he puesto la página
en otro servidor. Me aparece el siguiente error:

"Error de Microsoft VBScript en tiempo de ejecución error '800a000d'
No coinciden los tipos "

Sin embargo si sustituyo la línea:

if objRS("nombre")=usuario and objRS("clave")=clave then

por

if Cstr(objRS("nombre")) = usuario and Cstr(objRS("clave")) = clave then

me funciona

¿Quisiera saber que tengo que hacer para que me funcionen lo dos servidores
de igual forma?





Preguntas similares