Marcos Augusto Postado Dezembro 4, 2009 Denunciar Share Postado Dezembro 4, 2009 Ola a todos Pessoal estou com um pequeno problema em uma busca em sql com zeos1ª partetenho um form com os seguintes objetos :um edit (edLocalizar), um combobox (edSituacao) e um dbgridno combobox já ta configurado com os seguintes dados (ativo e inativo)2ªtenho uma tabela em mysql (UNIDADE_FORNECIMENTO) com 4 campos (codigo, descricao, simbolo, situacao)3ªpreciso fazer uma consulta em sql q busque algum dado na tabela mas tem que ser nos tres campos ao mesmo tempo (codigo, descricao, simbolo)e no combobox quando o usuario selecionar algum item (ex: ativo), retornar na busca o que foi digitado no edit e na selecao do comboboxex: kl ativo - retornar somente o kl ativoeu fiz assim DM.ZQUnidade.Active := false; DM.ZQUnidade.SQL.Clear; DM.ZQUnidade.SQL.Add('SELECT * FROM UNIDADE_FORNECIMENTO'); DM.ZQUnidade.SQL.Add('WHERE CODIGO LIKE "%' + edLocalizar.Text + '%"'); DM.ZQUnidade.SQL.Add('OR DESCRICAO LIKE "%' + edLocalizar.Text + '%"'); DM.ZQUnidade.SQL.Add('OR SIMBOLO LIKE "%' + edLocalizar.Text + '%"'); DM.ZQUnidade.SQL.Add('AND SITUACAO = "' + edSituacao.Text + '"'); DM.ZQUnidade.Active := true; mas não esta retornando do jeito que eu queria esta vindo tudo misturado como c não tivesse ativado o combo boxgrato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 5, 2009 Denunciar Share Postado Dezembro 5, 2009 mas não esta retornando do jeito que eu queria esta vindo tudo misturado como c não tivesse ativado o combo boxDM.ZQUnidade.Active := false; DM.ZQUnidade.SQL.Clear; DM.ZQUnidade.SQL.Add('SELECT * FROM UNIDADE_FORNECIMENTO'); DM.ZQUnidade.SQL.Add('WHERE CODIGO LIKE "%' + edLocalizar.Text + '%"'); DM.ZQUnidade.SQL.Add('OR DESCRICAO LIKE "%' + edLocalizar.Text + '%"'); DM.ZQUnidade.SQL.Add('OR SIMBOLO LIKE "%' + edLocalizar.Text + '%"'); DM.ZQUnidade.SQL.Add('AND SITUACAO = "' + edSituacao.Text + '"'); DM.ZQUnidade.Active := true; Vamos aos erros: 1 - deixe apenas o simbolo % final, dessa maneira somente a primeira ocorrencia da string é que será achada, pois se voce usar os 2 a string procurada podera estar no começo, no meio ou no fim 2 - veja que voce usou o operador OR e edLocalizar.Text para os campos CODIGO, DESCRICAO e SIMBOLO , o que estaria errado exemplo: se o seu edLocalizar.Text receber o valor 'E002' que seria o valor do CODIGO , na sua SQL esse valor estaria sendo atribuido tando para o campo DESCRICAO ou SIMBOLO tambem. 3 - se o campo SITUACAO vai receber o valor do Combobox então não há necessidade de colocar o edSituacao.Text, a menos que o valor do Combobox estivesse sendo atribuido ao edSituacao.Text em termos praticos deveria ser assim: DM.ZQUnidade.Active := false; DM.ZQUnidade.SQL.Clear; DM.ZQUnidade.SQL.Add('SELECT * FROM UNIDADE_FORNECIMENTO'); DM.ZQUnidade.SQL.Add('WHERE CODIGO LIKE ' + edCodigo.Text + '%'); DM.ZQUnidade.SQL.Add('OR DESCRICAO LIKE ' + edDescricao.Text + '%'); DM.ZQUnidade.SQL.Add('OR SIMBOLO LIKE ' + edSimbolo.Text + '%'); DM.ZQUnidade.SQL.Add('AND SITUACAO = ' + ComboBox1.Items.Strings[ComboBox1.ItemIndex]); DM.ZQUnidade.Active := true;abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Marcos Augusto
Ola a todos
Pessoal estou com um pequeno problema em uma busca em sql com zeos
1ª parte
tenho um form com os seguintes objetos :
um edit (edLocalizar), um combobox (edSituacao) e um dbgrid
no combobox já ta configurado com os seguintes dados (ativo e inativo)
2ª
tenho uma tabela em mysql (UNIDADE_FORNECIMENTO) com 4 campos (codigo, descricao, simbolo, situacao)
3ª
preciso fazer uma consulta em sql q busque algum dado na tabela mas tem que ser nos tres campos ao mesmo tempo (codigo, descricao, simbolo)
e no combobox quando o usuario selecionar algum item (ex: ativo), retornar na busca o que foi digitado no edit e na selecao do combobox
ex: kl ativo - retornar somente o kl ativo
eu fiz assim
DM.ZQUnidade.Active := false;
DM.ZQUnidade.SQL.Clear;
DM.ZQUnidade.SQL.Add('SELECT * FROM UNIDADE_FORNECIMENTO');
DM.ZQUnidade.SQL.Add('WHERE CODIGO LIKE "%' + edLocalizar.Text + '%"');
DM.ZQUnidade.SQL.Add('OR DESCRICAO LIKE "%' + edLocalizar.Text + '%"');
DM.ZQUnidade.SQL.Add('OR SIMBOLO LIKE "%' + edLocalizar.Text + '%"');
DM.ZQUnidade.SQL.Add('AND SITUACAO = "' + edSituacao.Text + '"');
DM.ZQUnidade.Active := true;
mas não esta retornando do jeito que eu queria esta vindo tudo misturado como c não tivesse ativado o combo box
grato
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.