Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

spy73

Problemas no site - "Type mismatch"

Recommended Posts

Bom Dia, galera!

 

Sou novo aqui no Fórum e também programando em ASP puro, e logo de cara me deparei com tal problema:

Microsoft VBScript runtime error '800a000d'

 

Type mismatch: 'AbreBanco'

 

/sodexo/default_sql.asp, line 5

Assim que eu coloco meu login e senha no sistema ele já me retorna tal erro. A página biblioteca.asp contém as propriedades de conexão com o banco MySQL e depois chama a página default_sql.asp.

 

Alguém saberia como solucionar tal caso?! Vlw...!

 

CÓDIGO DO BIBLIOTECA.ASP:

<%
	Session.LCID = 1046
	Session.Timeout = 1400
	
	Dim conn

	Function IsLogado
		IsLogado = False
		if ( Session ( "cd_usuario" ) = 0 ) or ( Session ( "cd_usuario" ) = "" ) then
			Response.Redirect( "default.asp?ai=1" )			
		end if
		IsLogado = True
	end function

	Function AbreBanco()
		if IsLogado then
			Set conn = Server.CreateObject("ADODB.Connection")
			conn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql03.diretriz.srv.br;PORT=3306;DATABASE=NOME_DO_BANCO;USER=USU
ARIO;PASSWORD=SENHA;OPTION=3;")
'			conn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;PORT=3306;DATABASE=diretrizportfolio;USER=admin;PASSWOR
D=;OPTION=3;")
		end if
	End Function

	Function FechaBanco()
		conn.Close
		Set conn = Nothing
	End Function

%>

CÓDIGO DO DEFAULT_SQL.ASP:

<!-- #include file="includes/biblioteca.asp"-->
<%
	dim intCodCliente

	session( "cd_usuario" ) = -1
	Call AbreBanco

	Set resultado = conn.execute( "select cd_cliente, cd_usuario, nome, aprova, separa, entrega from usuario where login = '" + Request.Form( "login" ) + "' and senha = '" + Request.Form( "senha" ) + "'" )
	if not resultado.eof then
		session( "cd_usuario" ) = resultado( "cd_usuario" )
		session( "aprova" ) = resultado( "aprova" )
		session( "separa" ) = resultado( "separa" )
		session( "entrega" ) = resultado( "entrega" )
		session( "nome" ) = resultado( "nome" )

		intCodCliente = resultado ("cd_cliente")	
		Set resultado = conn.execute( "select cd_cliente, nm_cliente, cd_cliente_pai, logotipo, arquivo, diasenha from cliente where cd_cliente = " + CSTR ( intCodCliente ) )
		if not resultado.eof then
			Session( "cd_cliente" )	 = resultado( "cd_cliente" )
			Session( "nm_cliente" )	 = resultado( "nm_cliente" )
			Session( "cd_cliente_pai" ) = resultado( "cd_cliente_pai" )
			Session( "logotipo" )	   = resultado( "logotipo" )
			Session( "arquivo" )		= resultado( "arquivo" )
			Session( "diasenha" )	   = resultado( "diasenha" )
		end if
		Response.Redirect( "main.asp" )
	else
		Session( "cd_cliente" )	 = 0
		Session( "nm_cliente" )	 = ""
		Session( "cd_cliente_pai" ) = 0
		Session( "logotipo" )	   = ""
		Session( "arquivo" )		= ""
		Session( "height" )		 = 0
		Session( "width" )		  = 0
		Session( "diasenha" )	   = 0
		Response.Redirect( "default.asp?acesso=1" )
	end if
	
	Call FechaBanco
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

dica do Ted k', função retorna valor, Sub não

 

use sub no lugar das functions

 

exemplo:

public sub AbreBanco()
		if IsLogado then
			Set conn = Server.CreateObject("ADODB.Connection")
			conn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql03.diretriz.srv.br;PORT=3306;DATABASE=NOME_DO_BANCO;USER=USU
ARIO;PASSWORD=SENHA;OPTION=3;")
'			conn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;PORT=3306;DATABASE=diretrizportfolio;USER=admin;PASSWOR
D=;OPTION=3;")
		end if
End sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

dica 1 do jonathandj

 

remova a senha do banco no post hehehehe

 

 

dica 2 você está atribuindo a mesma conexao para o objeto conn. se precisa conectar com duas bases use dois objetos com nomes diferentes ou comente o que não via utilizar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Type mismatch é um erro que acontece quando você tenta coisas de um tipo de valor em uma variável de outro tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.