Ir para conteúdo

POWERED BY:

Arquivado

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

bimpercursso

erro: Tipo não coincidente na expressão.

Recommended Posts

vejam esse erro no meu inner join:

 

Microsoft JET Database Engine (0x80004005)Tipo não coincidente na expressão./coaching/area_sbc/cadastro_coachs_busca2.asp, line 41

linah 41 e na execte da query SLQ

 

area = request.form("area_form")SQL = "SELECT nome_cou, telefone_cou, tb_cou.email_cou FROM tb_cout "&_" Inner Join tb_atuacao ON tb_cout.id_cou = tb_atuacao.id_cou WHERE atuacao1_atu='"&area&"'"'response.write sql'response.endset recset = conexao.execute(SQL)

alguem sugestao ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando você faz o inner join você deve colocar nomeDatabela.Campopor exemplo ...atuacao1_atu é tabela ou campo? o Sql também não sabe, você tem que informar isso a ele da forma que passei acima

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camardas,

 

P0nt0 no caso dever ser ponto (que redundância) mesmo pois é o nome da tabela mais no nome do campo.

 

bimpercursso o campo da tabela atuacao1_atu é caracter pq se não for não há necessidade de utilizar os plics (').

Por o erro de: Tipo não coincidente na expressão é relativo a tipos de dados incompátiveis.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe a demora para a resposta, mas é que houve uns problemas aqui de imediato e tive q ressolver antes, bom ai vai:

 

Então, nome atuacao_atu1 é campo da tablea tb_atuacao, entao tb_atuacao.id_cou seria tablea.campo, correto ?

 

o campo atuacao1_atu é um campo texto no banco mesmo, mas nao sei o que seria esse erro de dados incompátiveis ai na query.

 

Alguma sugestao que possa ser isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Então, nome atuacao_atu1 é campo da tablea tb_atuacao, entao tb_atuacao.id_cou seria tablea.campo, correto ?

Correto!

 

 

Por favor execute:

response.write sqlresponse.end
E post o resultado.

 

O campos tb_cout.id_cou e tb_atuacao.id_cou são do msm tipo?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

resultado do response:

SELECT nome_cou, telefone_cou, tb_cou.email_cou FROM tb_cout Inner Join tb_atuacao ON tb_cout.id_cou = tb_atuacao.id_cou WHERE atuacao1_atu='PERSONAL & PROFESSIONAL COACHING'

entao percebi que na tabela tb_cout o campo é auto numerico e na tabela tb_atuacao é texto, pois entao alterao para campo numerico, e executei novamente, deu outro erro, veja o erro e o response depois da auteração do campo.

 

erro:

Microsoft JET Database Engine (0x80040E10)Nenhum valor foi fornecido para um ou mais parâmetros necessários./Coaching/area_sbc/cadastro_coachs_busca2.asp, line 41'linha 41 é a linha que executa a query sql

 

response

SELECT nome_cou, telefone_cou, tb_cou.email_cou FROM tb_cout Inner Join tb_atuacao ON tb_cout.id_cou = tb_atuacao.id_cou WHERE atuacao1_atu='PERSONAL & PROFESSIONAL COACHING'

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, inicialmente eu faria assim:

SQL = "SELECT tb_cout.nome_cou, tb_cout.telefone_cou, tb_cou.email_cou FROM tb_cout "&_" Inner Join tb_atuacao.id_cou ON tb_cout.id_cou = tb_atuacao.id_cou WHERE atuacao1_atu.id_cou="&cint(area)&""
veja que atribui tabela.campo, depois disso, imagino que atuacao1_atu.id_cou seja do tipo inteiro, retirei as aspas simples da consulta. Converi a variavel area para tipo inteiro. Esse erro pode ser também o seguinte:

onde você faz o relacionamento dos campos pode estar incompativel o id_cou das tabelas tb_cout e tb_atuacao, ou seja, num deve estar com itpo inteiro e no outro texto

tb_cout.id_cou = tb_atuacao.id_cou

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade o atuacao1_atu nao seria uma tabela, e sim um campo: veja: tb_atuacao.atuacao1_atu - tabela.campo

 

e quando eu faço o WHERE, WHERE atuacao1_atu='"&area&"', estou pegando essa variavel do formulario, entao isso nao seria um numero tipo inteiro, e sim um texto mesmo.

 

deu para entender o que estou dizendo, ou ficou meio confuso ?

 

 

no banco o campo tb_cout.id_cou = auto numeração

no banco o campo tb_atuacao.id_cou = numerico

 

sera que estou definindo algo errado ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se vai agora

SQL = "SELECT tb_cout.nome_cou, tb_cout.telefone_cou, tb_cou.email_cou FROM tb_cout Inner Join tb_atuacao.id_cou ON tb_cout.id_cou = tb_atuacao.id_cou WHERE  tb_atuacao.atuacao1_atu='"&cstr(area)&"'"

Compartilhar este post


Link para o post
Compartilhar em outros sites

jonathandj, executei a sua query e deu erro de sintaxe do inner join, ai fiz uma mudança no sue codigo

 

veja:

Seu Codigo-----------SQL = "SELECT tb_cout.nome_cou, tb_cout.telefone_cou, tb_cou.email_cou FROM tb_cout Inner Join tb_atuacao.id_cou ON tb_cout.id_cou = tb_atuacao.id_cou WHERE  tb_atuacao.atuacao1_atu='"&cstr(area)&"'"onde tinha [b]FROM tb_cout Inner Join tb_atuacao.id_cou[/b] eu mudei para [b]FROM tb_cout Inner Join tb_atuacao[/b], e ai continua dando o seguinte erro [b]Nenhum valor foi fornecido para um ou mais parâmetros necessários.[/b]

nao acredito nisso, uma coisa tao simples me complicando aqui viu, o sera isso, ja to doidinho aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

correto. bela observação...a forma que corrigiu está corretafaça um tste, mande selecionar inclusive as colunas que usa no where e no ON

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que ja to quase resolvendo aki, meio que descobri o que esta acontecendo, vou postar minha query aqui e pedir uma ajuda, veja:

 

Query:SQL = "SELECT tb_cout.nome_cou, tb_cout.id_cou, tb_cout.telefone_cou FROM tb_cout "&_" inner Join tb_atuacao ON tb_cout.id_cou = tb_atuacao.id_cou WHERE  tb_atuacao.atuacao1_atu='"&cstr(area)&"'"
Agora esta trazendo certinho o resultado, mas preciso fazer com que em vez de pegar os registros onde

b_cout.id_cou = tb_atuacao.id_cou, pegue todos os registros WHERE tb_atuacao.atuacao1_atu='"&cstr(area)&"'"

 

estou meio maluco ja de tanto mexer nisso, mas agora acho que so falta isso mesmo para que funcioone perfeito.

 

alguma ideia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido, gente consegui reolver isso aqui, fiz umas alteraçoes no meu banco e ja está ok, a query ficou essa mesma, como esse banco era um pouco antigo estav com alguns registros que estavam fazio, ai no inner join etavam faltando eles.obrigado pela ajuda de vcs todos, aiabraços..

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.