Ir para conteúdo

POWERED BY:

Arquivado

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

rbaccaro

Erro em Asp

Recommended Posts

Transformei meu bd Access para MySQL e estou com problemas na inserção de dados.

Sempre coloquei o seguinte:

 

 

VarCodNome = Request.QueryString("CodNome")

Set objAnuncio = Conn.Execute("SELECT CodAnuncio FROM Anuncios WHERE CodNome = '"& VarCodNome &"'")

Session("Usuario") = objAnuncio("CodAnuncio")

 

Utilizava a Session("Usuario") para inserir o numero do anuncio na nova tabela do Access, só que no MySQL dá o seguinte erro:

 

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A000D)

Tipos incompatíveis: 'objAnuncio'

 

Se voces puderem me ajudar, agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda nao entendi o erro pois aparentemente ta certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei a linha

 

Session("Usuario") = objAnuncio("CodAnuncio") para

 

CodAnuncio = objAnuncio("CodAnuncio") e deu o seguinte erro

 

Tipo de erro:

(0x80020009)

Exceção.

 

A Chamada do codigo como <%CodAnuncio%> ou qualquer outro que esta dentro do Select volta com o mesmo erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao mas na pratica continua a mesma coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altera essas linhas:

Set objAnuncio = Conn.Execute("SELECT CodAnuncio FROM Anuncios WHERE CodNome = '"& VarCodNome &"'")
Session("Usuario") = objAnuncio("CodAnuncio")

Para essas:

Set rs12 = Conn.Execute("SELECT CodAnuncio FROM Anuncios WHERE CodNome = '"& VarCodNome &"'")
Session("Usuario") = rs12("CodAnuncio")

Se não der certo, altera para essas:

Set rs12 = Conn.Execute("SELECT CodAnuncio FROM Anuncios ")
Session("Usuario") = rs12("CodAnuncio")

Posta os resultados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi hargon,

 

Alterei para o primeiro codigo

Set rs12 = Conn.Execute("SELECT CodAnuncio FROM Anuncios WHERE CodNome = '"& VarCodNome &"'")

Session("Usuario") = rs12("CodAnuncio")

 

veio o erro

 

ADODB.Field (0x80020009)

BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

 

que normalmente vem em todas as alterações, já até envolvi com Cint(), mas o erro permanece.....

 

Alterei para o segundo codigo

 

Set rs12 = Conn.Execute("SELECT CodAnuncio FROM Anuncios ")

Session("Usuario") = rs12("CodAnuncio")

 

Aqui ele vai buscar o primeiro codigo do banco e não o codigo enviado para a pagina

 

No Access funciona legal, mas no MySQL não aceita esse tipo de chamada.

 

O problema no modo geral é que o código é gerado em uma outra pagina e ele precisa ser gravado em uma outra tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de escrever valores que vem do db precisa testar se realmente retornou algo

 

Em vez de

 

Set rs12 = Conn.Execute("SELECT CodAnuncio FROM Anuncios WHERE CodNome = '"& VarCodNome &"'")
Session("Usuario") = rs12("CodAnuncio")

faça algo como

Set rs12 = Conn.Execute("SELECT CodAnuncio FROM Anuncios WHERE CodNome = '"& VarCodNome &"'")
IF rs12.EOF
Response.write("Sem registros")
ELSE
Session("Usuario") = rs12("CodAnuncio")
END IF

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de escrever valores que vem do db precisa testar se realmente retornou algo

 

Em vez de

 

Set rs12 = Conn.Execute("SELECT CodAnuncio FROM Anuncios WHERE CodNome = '"& VarCodNome &"'")
Session("Usuario") = rs12("CodAnuncio")

faça algo como

Set rs12 = Conn.Execute("SELECT CodAnuncio FROM Anuncios WHERE CodNome = '"& VarCodNome &"'")
IF rs12.EOF
Response.write("Sem registros")
ELSE
Session("Usuario") = rs12("CodAnuncio")
END IF

 

Isso mesmo Mario. Só uma correção: não esqueça do THEN no final da linha do IF.

 

IF rs12.EOF THEN

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito Hargon

 

Faltou o THEN mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho feito da seguinte maneira

 

IF rs12.EOF Then

Session("Usuario") = rs12("CodAnuncio")

END IF

 

 

Se eu fizer

Set rs12 = Conn.Execute("SELECT CodAnuncio, CodLocal, Nome, Endereco FROM Anuncios WHERE CodNome = '"& VarCodNome &"'")

 

Estou fazendo a mesma chamada para os outros campos, só que deu diversos erros que estou arrumando

 

Acredito que é o caminho certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer dessa forma, você tem que alterar a condição.

IF NOT rs12.EOF Then

Session("Usuario") = rs12("CodAnuncio")

END IF

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo entao

 

se tiver duvidas poste ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo, os problemas estavam acontecendo porque eu estava testando interno, quando coloquei no servidor,

tudo correu normalmente, todos os erros foram acertados.

 

 

Nas tabelas, principais, coloquei o campo datahora, como timestamp, porque no Acces eu usava na data como Data/Hora e o

valor padrão como Agora() para não ter que entrar com data em todos os formularios. Gostaria de saber se é o certo, ou se

existe algo que possa ser feito para que a data na incersão de formulario, automaticamente seja inserida, sem a necessidade

das paginas indicarem o processo.

 

 

Agradeço a voces toda a ajuda

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce diz sem voce colocar o valor NOW no insert ?

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.