PROBLEMA COM COMANDO SQL

DAMASCENO.CESAR 11/03/2014 11:50:27
#435826
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 próximo a: [dados pessoais] WHERE [dados pessoais].Matricula =123456
Ache que deve ser porque o nome da tabela tem espaço
Se puderem me ajudar, obrigado.
MOUSER 11/03/2014 12:37:05
#435831
Tente da seguinte forma:[Ô]select * from dados pessoais where Matricula=[Ô] & CInt(Pmat) & [Ô][ô][Ô]
DAMASCENO.CESAR 11/03/2014 12:50:15
#435834
já tentei, ele reconhece apenas [Ô]dados[Ô] como sendo a tabela, tentei com Underline também 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 excessão na alteração do nome da tabela - Tabela não existe.
OCELOT 11/03/2014 12:54:47
#435835
Resposta escolhida
Se não me engano o MySQL não permite usar os [ ] para os identificadores com caracteres que não sejam alfanuméricos, nele se usa o carácter da crase para isso ' '

[Ô]SELECT * FROM 'dados pessoais' WHERE 'dados pessoais'.Matricula = [ô][Ô] & CInt(PMat) & [Ô][ô];[Ô]
NILSONTRES 11/03/2014 13:02:25
#435838
SELECT * FROM dados pessoais WHERE Matricula = [ô][Ô] & CInt(PMat) & [Ô][ô]
Não sei se espaço entre o nome da tabela pode gerar erro, já que eu não crio nome de tabelas com espaços e recomendo isso, mas essa query acima tem que funcionar, fora isso o problema pode não estar nela.
DAMASCENO.CESAR 11/03/2014 13:10:01
#435840
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 espaços nos nomes, agora tem um campo que pelo HEIDI aparece como: execução,
como trata-lo?
OBS: Nao tenho acesso pelo console do mySQL para ver corretamente o nome do campo por ele
OCELOT 11/03/2014 13:31:02
#435842
Experimenta colocar o nome do campo entre crases também, caso use o nome da tabela tente no tipo 'nome da tabela'.'nome do campo'
DAMASCENO.CESAR 11/03/2014 13:53:35
#435843
Não funcionou, mas é porque não é em comando SQL, tnho que desconectar agora mas amanhã posto o comando que estou usando e o erro
OMAR2011 11/03/2014 20:31:42
#435871
Cabra,fiz um teste aqui com meu mysql e criei tabela com nome separado e aceitou numa boa.
Mas,o vb não reconheceu dados pessoais separado. Colchetes também não foi aceito pelo mysql.
cmd.CommandText = [Ô]SELECT * FROM dadospessoais WHERE dadospessoais.Matricula = [ô][Ô] & CInt(PMat) & [Ô][ô];[Ô]
Ai sim funcionou.
DAMASCENO.CESAR 12/03/2014 08:23:31
#435886
Omar, tou desenvolvendo uma aplicação 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([Ô]execução[Ô])), 0, dr([Ô]execução[Ô]))

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 execução está com acento e cedilha, o comando não lê este campo, já tentei sem cedilha e sem acento, e nada - Campo não encontrado

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

NILSONTRES 12/03/2014 09:23:48
#435889
Se for o que estou pensando, vc não pode nesse caso ai utilizar iif e sim if else, porque ele atende a primeira case de qualquer jeito.
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas