Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Error "800a000d" no sistema


spy73

Pergunta

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=diretriz4;USER=diretri

z4;PASSWORD=sdx3737DLS;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

%>

É bem na linha em que chama a função de AbreBanco do default_sql.asp, que está aberta no biblioteca.asp. Sempre funcionou, mas tive que criar outro banco de dados MySQL na Locaweb, montei a mesma estrutura de dados, tabelas e do nada começou a dar esse erro... =/

Editado por spy73
Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

não sei se no seu codigo ta assim, ou se foi na hora de posta aqui, mas tem um enter no meio do seu codigo. aqui:

conn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql03.diretriz.srv.br;PORT=3306;DATABASE=diretriz4;USER=diretri
z4;PASSWORD=sdx3737DLS;OPTION=3;")[/code] acho q era pra ser tudo junto não??
[code]conn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql03.diretriz.srv.br;PORT=3306;DATABASE=diretriz4; USER=diretriz4; PASSWORD=sdx3737DLS;OPTION=3;")

Link para o comentário
Compartilhar em outros sites

  • 0
não sei se no seu codigo ta assim, ou se foi na hora de posta aqui, mas tem um enter no meio do seu codigo. aqui:

conn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql03.diretriz.srv.br;PORT=3306;DATABASE=diretriz4;USER=diretri
z4;PASSWORD=sdx3737DLS;OPTION=3;")
acho q era pra ser tudo junto não??
conn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql03.diretriz.srv.br;PORT=3306;DATABASE=diretriz4; USER=diretriz4; PASSWORD=sdx3737DLS;OPTION=3;")

Foi na hora que postei aqui mesmo, meu código tá sem o Enter... =/

Eu já tentei colocar o Response.Write de algumas variáveis pra ver o valor mas eles nem aparecem na tela do site quando entram na página... Ele deveria funcionar, não?!

Ex.: Response.Write session( "cd_usuario" )

Caraca, não sei mais o que fazer pra que funcione...

Será que ele não está conseguindo abrir o banco ou nem tá chamando a página biblioteca.asp em que está a função AbreBanco()...?! Não sabia que ASP puro seria tão chato assim, uma vez que programo em .NET há 4 anos e sempre resolvo os problemas muito rápido, debbugando tranquilo... :( :( :(

Link para o comentário
Compartilhar em outros sites

  • 0
tenta comentar todo o codigo q ta dentro da sub AbreBanco e ai você testa de novo e ai não deve dar erro nela.

ai você descomenta uma linha por vez e vai testando a cada linha pra descobrir qual ta dando problema.

É, to testando isso e realmente é alguma coisa na função AbreBanco() do biblioteca.asp... Testei a conexão em outros locais e ela está funcionando!

Será que o default_sql.asp não tá conseguindo chamar tal funcão do arquivo biblioteca.asp?! Se não está, qual seria o motivo?!

O que mais me irrita é que foi de uma hora pra outra, sem mais nem menos... =/

Link para o comentário
Compartilhar em outros sites

  • 0
Será que o default_sql.asp não tá conseguindo chamar tal funcão do arquivo biblioteca.asp?! Se não está, qual seria o motivo?!

é, mas é essa mensagem de erro q ta estranha.

É, to testando isso e realmente é alguma coisa na função AbreBanco() do biblioteca.asp... Testei a conexão em outros locais e ela está funcionando!

mas explica melhor esses testes q você fez. o q quer dizer com "Testei a conexão em outros locais"?? quer dizer em outro arquivo?? otro banco?? otro servidor??

Link para o comentário
Compartilhar em outros sites

  • 0
Será que o default_sql.asp não tá conseguindo chamar tal funcão do arquivo biblioteca.asp?! Se não está, qual seria o motivo?!

é, mas é essa mensagem de erro q ta estranha.

É, to testando isso e realmente é alguma coisa na função AbreBanco() do biblioteca.asp... Testei a conexão em outros locais e ela está funcionando!

mas explica melhor esses testes q você fez. o q quer dizer com "Testei a conexão em outros locais"?? quer dizer em outro arquivo?? otro banco?? otro servidor??

O erro provavelmente é que os outros arquivos não conseguem achar a função no biblioteca.asp, sei lá, a referência não tá funcionando, num sei o que é...

Ah, eu criei uma conexão ODBC no Windows, do MySQL, e testei a conexão com o banco de dados direto e funcionou, ou seja, a string de conexão tá de boa, o problema é a chamada da função, algo do tipo... =/

A referência no arquivo default_sql.asp tá certa?!

Referência: <!-- #include file="includes/biblioteca.asp"-->

Isso já é suficiente para que os arquivos usem as funções do biblioteca.asp ou falta alguma coisa?!

Link para o comentário
Compartilhar em outros sites

  • 0

tenta fazer uma funcao qualquer no biblioteca.asp tipo assim:

Sub xxx()
    Response.Write("xxx")
End Sub[/code] e tenta chama-la assim no default_sql.asp:
[code]xxx()
Response.End()

ponha isso logo na primera linha depois do <%

o Response.End() vai impedir q o resto do codigo seja executado pra não acontecer o erro do AbreBanco()

e ai veja se vai aparecer escrito "xxx" ou se vai dar erro.

se aparecer "xxx" a gente sabe q o problema é no AbreBanco(). se der erro, a gente sabe q é no biblioteca.asp.

Link para o comentário
Compartilhar em outros sites

  • 0
tenta fazer uma funcao qualquer no biblioteca.asp tipo assim:

Sub xxx()
    Response.Write("xxx")
End Sub
e tenta chama-la assim no default_sql.asp:
xxx()
Response.End()

ponha isso logo na primera linha depois do <%

o Response.End() vai impedir q o resto do codigo seja executado pra não acontecer o erro do AbreBanco()

e ai veja se vai aparecer escrito "xxx" ou se vai dar erro.

se aparecer "xxx" a gente sabe q o problema é no AbreBanco(). se der erro, a gente sabe q é no biblioteca.asp.

Fiz isso que você disse, e me retornou isso na tela:

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'xxx'

/sodexo/default_sql.asp, line 3

Sei lá, o default_sql.asp não tá conseguindo enxergar o biblioteca.asp eu acho... Essa referência tá zuada... =/

Link para o comentário
Compartilhar em outros sites

  • 0

hum, eu testei aqui e esse erro acontece quando o include é encontrado, mas a funcao não é encontrada dentro dele.

os arquivos tão no servidor ne?? tenta baxar de volta o biblioteca.asp e confira se o codigo esta todo la.

as vezes é problema na hora da transferencia, seila, talvez o arquivo acabe chegando pela metade.

senao tente fazer um teste pondo o biblioteca.asp no mesmo diretorio do default_sql.asp (e mudando a linha q faz o include ne), pra ver se não é problema de permissao.

esse codigo roda localmente??

Link para o comentário
Compartilhar em outros sites

  • 0
hum, eu testei aqui e esse erro acontece quando o include é encontrado, mas a funcao não é encontrada dentro dele.

os arquivos tão no servidor ne?? tenta baxar de volta o biblioteca.asp e confira se o codigo esta todo la.

as vezes é problema na hora da transferencia, seila, talvez o arquivo acabe chegando pela metade.

senao tente fazer um teste pondo o biblioteca.asp no mesmo diretorio do default_sql.asp (e mudando a linha q faz o include ne), pra ver se não é problema de permissao.

esse codigo roda localmente??

Tentei colocar tudo na mesma pasta mas o erro persiste.

Esses arquivos estão na Locaweb, foram desenvolvidos localmente e depois jogados para o servidor deles, e sempre rodou normal por lá. O banco tb se encontra lá.

Antes ele ficava no login do desenvolvedor que fez o sistema, depois migramos para o login de nossa empresa na Locaweb, e quando apontei a conexão para o banco do nosso login, que eu repliquei idêntico ao do desenvolvedor, ele começou a aparecer tal erro.

Um detalhe, não sei se é normal: Quando eu subo o arquivo "default_sql.asp" para a Locaweb e depois baixo, ele me volta sem a primeira linha de referência: <!-- #include file="biblioteca.asp"-->, e no biblioteca.asp não retorna a primeira linha tb, o "<%"... Será que isso tem alguma influência ou é normal?!

Código do default_sql.asp quando baixo da Locaweb:

<%

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" ) + "'" )

ETC...

Código do biblioteca.asp quando baixo da Locaweb:

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

ETC...

Link para o comentário
Compartilhar em outros sites

  • 0
hum, eu testei aqui e esse erro acontece quando o include é encontrado, mas a funcao não é encontrada dentro dele.

os arquivos tão no servidor ne?? tenta baxar de volta o biblioteca.asp e confira se o codigo esta todo la.

as vezes é problema na hora da transferencia, seila, talvez o arquivo acabe chegando pela metade.

senao tente fazer um teste pondo o biblioteca.asp no mesmo diretorio do default_sql.asp (e mudando a linha q faz o include ne), pra ver se não é problema de permissao.

esse codigo roda localmente??

Tentei colocar tudo na mesma pasta mas o erro persiste.

Esses arquivos estão na Locaweb, foram desenvolvidos localmente e depois jogados para o servidor deles, e sempre rodou normal por lá. O banco tb se encontra lá.

Antes ele ficava no login do desenvolvedor que fez o sistema, depois migramos para o login de nossa empresa na Locaweb, e quando apontei a conexão para o banco do nosso login, que eu repliquei idêntico ao do desenvolvedor, ele começou a aparecer tal erro.

Um detalhe, não sei se é normal: Quando eu subo o arquivo "default_sql.asp" para a Locaweb e depois baixo, ele me volta sem a primeira linha de referência: <!-- #include file="biblioteca.asp"-->, e no biblioteca.asp não retorna a primeira linha tb, o "<%"... Será que isso tem alguma influência ou é normal?!

Código do default_sql.asp quando baixo da Locaweb:

<%

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" ) + "'" )

ETC...

Código do biblioteca.asp quando baixo da Locaweb:

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

ETC...

A Locaweb tá comendo a primeira linha do meu código nos arquivos... -.-

Eu pensei no começo que isso fosse meio que normal, sei lá, eles criavam algum script que dispensava tais linhas e funcionava do mesmo jeito... Mas agora, quando você comentou de alterações no fonte, me dei conta de que os arquivos não estavam assim quando os peguei pela primeira vez no login do outro cara, estavam completos...

Patz, vou ligar na Locaweb e ver o que rola de fazer pra que eles não alterem meu código... =/

Será que é só isso mesmo?!

Link para o comentário
Compartilhar em outros sites

  • 0

é então, mas talvez seja na conexao, ou na hora de mandar os arquivos.

q programa ftp você usa?? tenta usar algum otro. ou tenta mandar o arquivo pelo painel de controle do locaweb, caso eles tenham essa opcao.

ai se continuar o erro, o jeito é entra em contato com eles mesmo.

Link para o comentário
Compartilhar em outros sites

  • 0
é então, mas talvez seja na conexao, ou na hora de mandar os arquivos.

q programa ftp você usa?? tenta usar algum otro. ou tenta mandar o arquivo pelo painel de controle do locaweb, caso eles tenham essa opcao.

ai se continuar o erro, o jeito é entra em contato com eles mesmo.

Eu uso direto o Painel de Controle deles... To há 15 min tentando falar com eles no tel mas tá complicado, mta fila... hahaha

Vou tentar usar o FTP direto, as vezes rola melhor...

Valeu pelas ajudas aew cara, e me desculpe-me o incômodo aew... xD

AbcS,

Rodrigo.

é então, mas talvez seja na conexao, ou na hora de mandar os arquivos.

q programa ftp você usa?? tenta usar algum otro. ou tenta mandar o arquivo pelo painel de controle do locaweb, caso eles tenham essa opcao.

ai se continuar o erro, o jeito é entra em contato com eles mesmo.

Eu uso direto o Painel de Controle deles... To há 15 min tentando falar com eles no tel mas tá complicado, mta fila... hahaha

Vou tentar usar o FTP direto, as vezes rola melhor...

Valeu pelas ajudas aew cara, e me desculpe-me o incômodo aew... xD

AbcS,

Rodrigo.

Ops, "ME DESCULPE-ME" foi difícil, hein... hahahhaahha

Vlw!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...