Ir para conteúdo

POWERED BY:

Arquivado

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

ExtremsX

[Resolvido] Erro na comparação de variavel "ntext" e &q

Recommended Posts

Vou esplicar primeiro como é que fuciona:

 

WS = Request.QueryString("WS")
rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idEmissora='& WS &'", adoCon

Explicando:

A variavel WS recebi da pagina anterior um valor HASH "MD5" e pega a URL onde o idEmissora for iqual a esse HASH gerado na pagina anterior. Essa parte vcs devem ja ter sacado como é mas o problema e na comparação idEmissora='& WS &'. Onde o meu problema acontece.

 

Tipo de erro:

Microsoft OLE DB Provider for SQL Server (0x80040E14)

Os tipos de dados ntext e varchar são incompatíveis no operador equal to.

 

Como posso resolver

 

Quero saber como resolver esse problema onde o idEmissora e tipo nText, como posso fazer pra compar esses dois valores sem precizar mudar a o campo idEmissora pra varchar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que faltou uma aspas ali.

 

rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idEmissora='"& WS &"', adoCon

 

Testa e posta o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que faltou uma aspas ali.

 

rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idEmissora='"& WS &"', adoCon

 

Testa e posta o resultado.

 

Se eu colocar assim

- rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idEmissora='& WS &'", adoCon

Da isso:

- Microsoft OLE DB Provider for SQL Server (0x80040E14)

- Os tipos de dados ntext e varchar são incompatíveis no operador equal to.

 

Se eu colocar do jeito que você disse:

- rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idEmissora='"& WS &"', adoCon

Da isso:

- Erro de compilação do Microsoft VBScript (0x800A0409)

- Constante de seqüência não finalizada

- /Includes/iFrameWatch.asp, line 13, column 81

- rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idEmissora='"& WS &"', adoCon

 

 

Como deu errado eu criei um campo chamado IdHash do tipo nchar(32) pra ver se eu resolvo o problema da incompatibilidade gerada pelo operador equal to. Mas...

 

Ai escrevi assim no codigo:

- rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idHash='& WS &'", adoCon

Da isso:

- ADODB.Field (0x800A0BCD)

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

- /Includes/iFrameWatch.asp, line 14

 

O problema é que eu não tenho a minima ideia de porque ele nao achou nada na consulta pois tenho certeza absoluta que tem (pois dei Ctrl+C e depois Ctrl+V), mas assim eu tirei o problema de inconpatibilidade de dados mas outro erro apareceu :(

 

E depois de muito tentar consegui assim:

- rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idHash="+ WS +"", adoCon

Mas isso so fuciona quando eu coloco um valor simples no campo idHash como por exemplo o numero 1, mas quando eu coloco o valor HASH que é o valor que eu quero que fique ele da o seguinte erro. Como posso colocar pra fucionar usando o valor HASH e não valores simples/

Compartilhar este post


Link para o post
Compartilhar em outros sites

A principio você está vacilando nas ASPAS.

 

rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idEmissora='"& WS &"'", adoCon

 

Testa assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A principio você está vacilando nas ASPAS.

 

rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idEmissora='"& WS &"'", adoCon

 

Testa assim.

Agora sim, deu errado pois no primeiro post seu você esqueceu de uma aspa simples, dessa pra ser exato:

 

rs.Open "SELECT UrlTransmissao FROM Emissoras WHERE idEmissora='"& WS &"'", adoCon

 

Agora que voce colocou deu certo, mas aproveitando o erro você poderia esplicar pq tava dando errado, pois nunca vi alguem colocando essa aspa simples ai. Pq eu teho de colocar ela ai?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente esqueci de fechar a aspas.

 

Provavelmente porque idEmissora é texto. Então você tem que comparar com texto.

 

O banco de dados vai entender que o parâmetro é texto somente quando estiver dentro de aspas simples.

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.