PROBLEMA COM COMANDO SQL

 Tópico anterior Próximo tópico Novo tópico

PROBLEMA COM COMANDO SQL

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#435826 - 11/03/2014 11:50:27

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


Bom dia, estou usando o banco de dados mySQL, conectei normal mas ao realizar a pesquisa com o comando SQL abaixo:
SELECT * FROM [dados pessoais] WHERE [dados pessoais].Matricula = [][] & CInt(PMat) & [][];[]

d erro de sintaxe prximo a: [dados pessoais] WHERE [dados pessoais].Matricula =123456
Ache que deve ser porque o nome da tabela tem espao
Se puderem me ajudar, obrigado.


O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#435831 - 11/03/2014 12:37:05

MOUSER
CARAPICUIBA
Cadast. em:Fevereiro/2014


Tente da seguinte forma:[]select * from dados pessoais where Matricula=[] & CInt(Pmat) & [][][]

VB.NET + SQL Server = Muita coisa sei, mas muita coisa para aprender.
Curso de Excel e VB6 www.cursoexcelvba.com.br
Blog do Mouser


#435834 - 11/03/2014 12:50:15

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


j tentei, ele reconhece apenas []dados[] como sendo a tabela, tentei com Underline tambm e deu o mesmo erro.

j tentei com aspas simples, sem aspas simples, com ponto e virgula, sem ponto e virgula mas pelo jeito, deve ser no nome da tabela o erro, pois todas as outras tentativas deram o mesmo erro, com excesso na alterao do nome da tabela - Tabela no existe.

O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


Resposta escolhida #435835 - 11/03/2014 12:54:47

OCELOT
SOROCABA
Cadast. em:Março/2012


Se no me engano o MySQL no permite usar os [ ]  para os identificadores com caracteres que no sejam alfanumricos, nele se usa o carcter da crase para isso ` `

[]SELECT * FROM `dados pessoais` WHERE `dados pessoais`.Matricula = [][] & CInt(PMat) & [][];[]



#435838 - 11/03/2014 13:02:25

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


SELECT * FROM dados pessoais WHERE Matricula = [][] & CInt(PMat) & [][]
No sei se espao entre o nome da tabela pode gerar erro, j que eu no crio nome de tabelas com espaos e recomendo isso, mas essa query acima tem que funcionar, fora isso o problema pode no estar nela.




#435840 - 11/03/2014 13:10:01

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


E eu pensava que deveria ser aspas simples ou colchete para juntar os nomes kkkkkkkkkkkkkk!
quando na realidade deve-se utilizar a crase!!!
Outra coisa, rsrsrs. agora tou com um problema quanto ao nome de um campo, quem criou o BD baseou-se em Access e por isso espaos nos nomes, agora tem um campo que pelo HEIDI aparece como: execuo,
como trata-lo?
OBS: Nao tenho acesso pelo console do mySQL para ver corretamente o nome do campo por ele


O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#435842 - 11/03/2014 13:31:02

OCELOT
SOROCABA
Cadast. em:Março/2012


Experimenta colocar o nome do campo entre crases tambm, caso use o nome da tabela tente no tipo `nome da tabela`.`nome do campo`



#435843 - 11/03/2014 13:53:35

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


No funcionou, mas porque no em comando SQL, tnho que desconectar agora mas amanh posto o comando que estou usando e o erro


O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#435871 - 11/03/2014 20:31:42

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Cabra,fiz um teste aqui com meu mysql e criei tabela com nome separado e aceitou numa boa.
Mas,o vb no reconheceu dados pessoais separado. Colchetes tambm no foi aceito pelo mysql.
cmd.CommandText = []SELECT * FROM dadospessoais WHERE dadospessoais.Matricula = [][] & CInt(PMat) & [][];[]
Ai sim funcionou.



#435886 - 12/03/2014 08:23:31

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


Omar, tou desenvolvendo uma aplicao em tres camadas e o problema com o nome do campo nao no comando SQL, no comando SQL j resolvi o problema de acordo com a dica do OCELOT - usando crase para o nome em separado, no lugar de aspas simples ou colchete - , meu problema com o nome do campo est na seguinte linha:

Dados.Execucao = IIf(IsDBNull(dr([]execuo[])), 0, dr([]execuo[]))

DADOS est pegando a propriedade de uma classe e recebendo o valor nesta propriedade de um Data Reader.

esta linha funciona com outros campos da tabela sem problema nenhum, mas como o campo execuo est com acento e cedilha, o comando no l este campo, j tentei sem cedilha e sem acento, e nada - Campo no encontrado

tem como resolver isso sem alterar o nome do campo? pois existem outras aplicacoes que utilizam esta tabela



O conhecimento como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#435889 - 12/03/2014 09:23:48

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


Última edição em 12/03/2014 09:24:25 por NILSONTRES

Se for o que estou pensando, vc no pode nesse caso ai utilizar iif e sim if else, porque ele atende a primeira case de qualquer jeito.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por DAMASCENO.CESAR em 13/03/2014 16:24:24