Selecionar dados no banco de dados
Preciso selecionar os pedidos cadastrados, porem quero selecionar por codigo, em ordem alfabetica e com os pedidos que apresentem o campo ESTATUS = 0. Estou usando o seguinte codigo no evento onchange de uma edit:
Porem ele da o seguinte erro:'Erro de sintaxe na sequencia de caracteres na expressao de consulta 'CODIGO LIKE'%4%'and ESTATUS = 0'order by CODIGO''
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC where CODIGO LIKE ''%'+edit1.Text+'%''and ESTATUS = 0''order by CODIGO');
ADOQuery1.Open;Daniel
Curtidas 0
Respostas
Rodrigo Pereira
12/07/2011
Me parece falta de espaços entre +'%''and
GOSTEI 0
Daniel
12/07/2011
Me parece falta de espaços entre +'%''and
Dei espaço mais continua dando o mesmo erro
GOSTEI 0
Ernani Landim
12/07/2011
Ai vai uma outra maneira de fazer a query
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC ');
ADOQuery1.SQL.Add('where CODIGO LIKE %:pCOD%');
ADOQuery1.SQL.Add('and ESTATUS = 0');
ADOQuery1.SQL.Add('order by CODIGO');
ParamByName('pCOD').AsString:= edit1.text ;
ADOQuery1.Open;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC ');
ADOQuery1.SQL.Add('where CODIGO LIKE %:pCOD%');
ADOQuery1.SQL.Add('and ESTATUS = 0');
ADOQuery1.SQL.Add('order by CODIGO');
ParamByName('pCOD').AsString:= edit1.text ;
ADOQuery1.Open;
GOSTEI 0
Daniel
12/07/2011
Ai vai uma outra maneira de fazer a query
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC ');
ADOQuery1.SQL.Add('where CODIGO LIKE %:pCOD%');
ADOQuery1.SQL.Add('and ESTATUS = 0');
ADOQuery1.SQL.Add('order by CODIGO');
ParamByName('pCOD').AsString:= edit1.text ;
ADOQuery1.Open;
Na linha ParamByName('pCOD').AsString:= edit1.text ; ele mostra como undeclared identifier: ParamByName.
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC ');
ADOQuery1.SQL.Add('where CODIGO LIKE %:pCOD%');
ADOQuery1.SQL.Add('and ESTATUS = 0');
ADOQuery1.SQL.Add('order by CODIGO');
ParamByName('pCOD').AsString:= edit1.text ;
ADOQuery1.Open;
GOSTEI 0
Emerson Nascimento
12/07/2011
corrigindo as duas formas....
na 1a. :
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC where CODIGO LIKE ''%'+edit1.Text+'%''and ESTATUS = 0''order by CODIGO');
ADOQuery1.Open;
foi colocada uma aspa a mais depois de ESTATUS = 0. o correto é:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC where CODIGO LIKE ''%'+edit1.Text+'%'' and ESTATUS = 0 order by CODIGO');
ADOQuery1.Open;
na 2a. :
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC ');
ADOQuery1.SQL.Add('where CODIGO LIKE %:pCOD%');
ADOQuery1.SQL.Add('and ESTATUS = 0');
ADOQuery1.SQL.Add('order by CODIGO');
ParamByName('pCOD').AsString:= edit1.text ;
ADOQuery1.Open;
não coloque os curingas % na instrução. coloque somente no valor a ser pesquisado. assim:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC ');
ADOQuery1.SQL.Add('where CODIGO LIKE :pCOD');
ADOQuery1.SQL.Add('and ESTATUS = 0');
ADOQuery1.SQL.Add('order by CODIGO');
ADOQuery1.ParamByName('pCOD').AsString := '%'+edit1.text+'%';
ADOQuery1.Open;
na 1a. :
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC where CODIGO LIKE ''%'+edit1.Text+'%''and ESTATUS = 0''order by CODIGO');
ADOQuery1.Open;
foi colocada uma aspa a mais depois de ESTATUS = 0. o correto é:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC where CODIGO LIKE ''%'+edit1.Text+'%'' and ESTATUS = 0 order by CODIGO');
ADOQuery1.Open;
na 2a. :
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC ');
ADOQuery1.SQL.Add('where CODIGO LIKE %:pCOD%');
ADOQuery1.SQL.Add('and ESTATUS = 0');
ADOQuery1.SQL.Add('order by CODIGO');
ParamByName('pCOD').AsString:= edit1.text ;
ADOQuery1.Open;
não coloque os curingas % na instrução. coloque somente no valor a ser pesquisado. assim:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAOC ');
ADOQuery1.SQL.Add('where CODIGO LIKE :pCOD');
ADOQuery1.SQL.Add('and ESTATUS = 0');
ADOQuery1.SQL.Add('order by CODIGO');
ADOQuery1.ParamByName('pCOD').AsString := '%'+edit1.text+'%';
ADOQuery1.Open;
GOSTEI 0
Ernani Landim
12/07/2011
Valeu Emerson, grande abraço!
GOSTEI 0