Ir para conteúdo

POWERED BY:

Arquivado

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

tiagoborges.net

[Resolvido] Problemas em consulta ao banco de dados

Recommended Posts

Olá pessoal, estou usando desta forma no editor Query do VS2010 e a consulta é realizada com sucesso, quando tento usar no aspx.vb tenho o erro.

 

Este é o código no Query:

 

SELECT        tbtopicos.varcharLink, tbtopicos.varcharTitulo, tbtopicos.varcharDescricao, tbtopicos.varcharPalavraChave, tbtopicos.textConteudo, 
                		tbpaginas.intRegistro AS intRegistroCategoria, tbpaginas.varcharLink AS varcharLinkCategoria, tbpaginas.varcharTitulo AS varcharTituloCategoria, 
                		tbpaginas.varcharDescricao AS varcharDescricaoCategoria, tbpaginasmarcas.varcharLink AS varcharLinkMarca, 
                		tbpaginasmarcas.varcharTitulo AS varcharTituloMarca, tbpaginasmarcas.varcharDescricao AS varcharDescricaoMarca, 
                		tbpaginasmodelos.varcharLink AS varcharLinkModelo, tbpaginasmodelos.varcharTitulo AS varcharTituloModelo, 
                		tbpaginasmodelos.varcharDescricao AS varcharDescricaoModelo
FROM            tbtopicos INNER JOIN
                		tbcategorias ON tbtopicos.intCategoria = tbcategorias.intRegistro INNER JOIN
                		tbpaginas ON tbcategorias.intPagina = tbpaginas.intRegistro INNER JOIN
                		tbtopicosmodelos ON tbtopicos.intRegistro = tbtopicosmodelos.intTopico INNER JOIN
                		tbmodelos ON tbtopicosmodelos.intModelo = tbmodelos.intRegistro INNER JOIN
                		tbmarcas ON tbmodelos.intMarca = tbmarcas.intRegistro INNER JOIN
                		tbpaginas tbpaginasmarcas ON tbmarcas.intPagina = tbpaginasmarcas.intRegistro INNER JOIN
                		tbpaginas tbpaginasmodelos ON tbmodelos.intPagina = tbpaginasmodelos.intRegistro
WHERE        (tbtopicos.intRegistro = @Registro) AND (tbtopicosmodelos.intModelo = @Marca) AND (tbtopicos.bitAprovado = 1) AND (tbpaginas.bitAprovado = 1) AND 
                		(tbpaginasmarcas.bitAprovado = 1) AND (tbpaginasmodelos.bitAprovado = 1)

 

E este é o código no arquivo aspx.vb:

 

SELECT tbtopicos.varcharLink, tbtopicos.varcharTitulo, tbtopicos.varcharDescricao, tbtopicos.varcharPalavraChave, tbtopicos.textConteudo, tbpaginas.intRegistro AS intRegistroCategoria, tbpaginas.varcharLink AS varcharLinkCategoria, tbpaginas.varcharTitulo AS varcharTituloCategoria, tbpaginas.varcharDescricao AS varcharDescricaoCategoria, tbpaginasmarcas.varcharLink AS varcharLinkMarca, tbpaginasmarcas.varcharTitulo AS varcharTituloMarca, tbpaginasmarcas.varcharDescricao AS varcharDescricaoMarca, tbpaginasmodelos.varcharLink AS varcharLinkModelo, tbpaginasmodelos.varcharTitulo AS varcharTituloModelo, tbpaginasmodelos.varcharDescricao AS varcharDescricaoModelo FROM tbtopicos INNER JOIN tbcategorias ON tbtopicos.intCategoria = tbcategorias.intRegistro INNER JOIN tbpaginas ON tbcategorias.intPagina = tbpaginas.intRegistro INNER JOIN tbtopicosmodelos ON tbtopicos.intRegistro = tbtopicosmodelos.intTopico INNER JOIN tbmodelos ON tbtopicosmodelos.intModelo = tbmodelos.intRegistro INNER JOIN tbmarcas ON tbmodelos.intMarca = tbmarcas.intRegistro INNER JOIN tbpaginas AS tbpaginasmarcas ON tbmarcas.intPagina = tbpaginasmarcas.intRegistro INNER JOIN tbpaginas AS tbpaginasmodelos ON tbmodelos.intPagina = tbpaginasmodelos.intRegistro WHERE tbtopicos.intRegistro = @Registro AND tbtopicosmodelos.intModelo = @Marca AND tbtopicos.bitAprovado = TRUE AND tbpaginas.bitAprovado = TRUE AND tbpaginasmarcas.bitAprovado = TRUE AND tbpaginasmodelos.bitAprovado = TRUE

 

 

Estou usando o conector.net 6.5.4 e mysql 5.5. E esta é a mensagem de erro:

 

MensagemErro.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja mais detalhes sobre o erro.

 

Enquanto eu estava usando 3 tabelas diferentes para categoria, marca e modelo estava tudo tranquilo, mas ao definir uma única tabela para tudo e tentar declarar um nome para marca e modelo usando a mesma tabela página gerou o problema.

 

Se eu copio o segundo código que o utilizado em aspx.vb e colar dentro de um Query (Server Explorer > Data Connections) passa tranquilo:

 

Query.jpg

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja tentou mudar na TSQL o true para 1 e 0 para false.

 

Pois é, esta questão eu já tinha me atentado e já estava fazendo, para Query estou usando 1 e para aspx.vb estou usando TRUE, quando eram tabelas distintas só funcionava assim. Este processo de usar uma mesma tabela sendo usada com outro nome (tbpaginas AS tbpaginasmarcas) rola como é feito nas outras expressões?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, esta questão eu já tinha me atentado e já estava fazendo, para Query estou usando 1 e para aspx.vb estou usando TRUE, quando eram tabelas distintas só funcionava assim. Este processo de usar uma mesma tabela sendo usada com outro nome (tbpaginas AS tbpaginasmarcas) rola como é feito nas outras expressões?

 

 

Vou tentar rodar direto dentro do mysql pra ver se apresenta o erro também ou se não vai ter como usar estes alias.

 

SELECT tbtopicos.varcharLink, tbtopicos.varcharTitulo, tbtopicos.varcharDescricao, tbtopicos.varcharPalavraChave, tbtopicos.textConteudo, tbpaginas.intRegistro AS intRegistroCategoria, tbpaginas.varcharLink AS varcharLinkCategoria, tbpaginas.varcharTitulo AS varcharTituloCategoria, tbpaginas.varcharDescricao AS varcharDescricaoCategoria, tbpaginasmarcas.varcharLink AS varcharLinkMarca, tbpaginasmarcas.varcharTitulo AS varcharTituloMarca, tbpaginasmarcas.varcharDescricao AS varcharDescricaoMarca, tbpaginasmodelos.varcharLink AS varcharLinkModelo, tbpaginasmodelos.varcharTitulo AS varcharTituloModelo, tbpaginasmodelos.varcharDescricao AS varcharDescricaoModelo FROM tbtopicos INNER JOIN tbcategorias ON tbtopicos.intCategoria = tbcategorias.intRegistro INNER JOIN tbpaginas ON tbcategorias.intPagina = tbpaginas.intRegistro INNER JOIN tbtopicosmodelos ON tbtopicos.intRegistro = tbtopicosmodelos.intTopico INNER JOIN tbmodelos ON tbtopicosmodelos.intModelo = tbmodelos.intRegistro INNER JOIN tbmarcas ON tbmodelos.intMarca = tbmarcas.intRegistro INNER JOIN tbpaginas tbpaginasmarcas ON tbmarcas.intPagina = tbpaginasmarcas.intRegistro INNER JOIN tbpaginas tbpaginasmodelos ON tbmodelos.intPagina = tbpaginasmodelos.intRegistro WHERE tbtopicos.intRegistro = 1 AND tbtopicosmodelos.intModelo = 1 AND tbtopicos.bitAprovado = TRUE AND tbpaginas.bitAprovado = TRUE AND tbpaginasmarcas.bitAprovado = TRUE AND tbpaginasmodelos.bitAprovado = TRUE

 

Funcionou sem problemas direto no MySQL pelo MySQL Front.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta rodar na aplicação agora caso der erro entra em View Detail e analisa o que realmente causou o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interessante, copiei de volta pra dentro e funcionou certinho, mas procurando o erro aqui, não estou achando nada diferente, sei lá, vai entender!

 

Obrigado pela ajuda!

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.