erro sql quot;Column Unknow xquot;
por que a consulta sql abaixo gera o erro ´Column Unknow x´ ????
eu só queria fazer com que fosse selecionado todos os registros da tabela usuario, onde o campo aluno tivesse X.
Abraços...
// Tabela Alunos DM.Tbl_Usuarios.SelectSQL.Clear; DM.Tbl_Usuarios.SelectSQL.Add(´Select * From Usuarios ´+ ´WHERE ALUNO = ´ +´X´ ); DM.Tbl_Usuarios.Close; DM.Tbl_Usuarios.Open;
eu só queria fazer com que fosse selecionado todos os registros da tabela usuario, onde o campo aluno tivesse X.
Abraços...
Mahdak
Curtidas 0
Respostas
Isabelct
08/08/2005
// Tabela Alunos DM.Tbl_Usuarios.SelectSQL.Clear; DM.Tbl_Usuarios.SelectSQL.Add(´Select * From Usuarios ´+ ´WHERE ALUNO = ´ +´X´ ); DM.Tbl_Usuarios.Close; DM.Tbl_Usuarios.Open;
Pela forma como você está fazendo, uma concatenação simples, o banco está interpretando que X é uma coluna.
Sugiro a seguinte mudança:
DM.Tbl_Usuarios.SelectSQL.Add(´Select * From Usuarios ´+ ´WHERE ALUNO = ´ + QuotedStr(´X´) );
O QuotedStr insere aspas ao redor da string ´X´, desta forma o banco interpreta como sendo uma cadeia de caracteres.
Mas com esta instrução, a consulta retornaria apenas os registros onde o campo aluno fosse ´X´. Para trazer os registros em que o campo contém a letra ´X´, você precisará utilizar o comando like, juntamente com o caracter curinga ´¬´. Veja um exemplo:
DM.Tbl_Usuarios.SelectSQL.Add(´Select * From Usuarios ´+ ´WHERE ALUNO like ´ + QuotedStr(´X¬´) );
Assim você tem todos os registros que comecem com a letra ´X´
DM.Tbl_Usuarios.SelectSQL.Add(´Select * From Usuarios ´+ ´WHERE ALUNO like ´ + QuotedStr(´¬X¬´) );
E assim você tem todos os registros que contenham a letra ´X´ em qualquer posição do campo.
Espero ter ajudado...
GOSTEI 0
Mahdak
08/08/2005
isabelct, deu certo até ali, mas agora tenho que ir mais longe, e devido a issopintou ourto probleminha:
- o que eu quero que aconteça:
---------------------------------------
Selecione * de USUARIOS quando a coluna NOME for igual a variavel consulta(Edit´pesquisa.text), e a coluna ALUNO conter um ´X´, ordenado por nome.
código atual:
----------------
Problema atual:
------------------
- a consulta nao está obedecendo a parte do código ( ´AND ALUNO =´+ QuotedStr(´X¬´) ) que diz respeito a condição que a coluna ALUNOS tem que conter um caractere ´X´.
Simplesmente aparece qualquer linha da tabela que nao obedeça a condição acima...
Abraços!
- o que eu quero que aconteça:
---------------------------------------
Selecione * de USUARIOS quando a coluna NOME for igual a variavel consulta(Edit´pesquisa.text), e a coluna ALUNO conter um ´X´, ordenado por nome.
código atual:
----------------
DM.Tbl_Usuarios.Close; DM.Tbl_Usuarios.SelectSQL.Clear; DM.Tbl_Usuarios.SelectSQL.Add(´Select * From Usuarios ´+´Where Nome Like:Consulta ´+ ´AND ALUNO =´+ QuotedStr(´X¬´) +´ Order By Nome´); DM.Tbl_Usuarios.Params[0].AsString; DM.Tbl_Usuarios.ParamByName(´Consulta´).AsString:=´´+´¬´+Edit_Pesquisa.Text+´¬´; DM.Tbl_Usuarios.Open;
Problema atual:
------------------
- a consulta nao está obedecendo a parte do código ( ´AND ALUNO =´+ QuotedStr(´X¬´) ) que diz respeito a condição que a coluna ALUNOS tem que conter um caractere ´X´.
Simplesmente aparece qualquer linha da tabela que nao obedeça a condição acima...
Abraços!
GOSTEI 0