Ajuda - Busca - Membros - Calendário
Versão Completa: Concatenar String
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Juniorocha

Tenho uma query e queria da um where com um dbedit
tipow
select * from tbl where codigo = (dbedit1)
como faço essa concatenação?
vlw
Micheus
se o seu campo código for numerico no banco então:
query1.SQL.Add('select * from tbl where codigo = '+dbedit1.Text);

se for string:
query1.SQL.Add('select * from tbl where codigo = '''+dbedit1.Text+'''');
aqui não estou certo quanto a quantidade de aspas simples. alguns colegas costumam citar a função QuotedStr:
query1.SQL.Add('select * from tbl where codigo = '+QuotedStr(dbedit1.Text)); (acho que é assim)

mas, ao meu ver, a melhor opção é utilizar parâmetros pois você não tem que se preocupar com esses detalhes:
query1.SQL.Add('select * from tbl where codigo = :Codigo');
query1.ParamByName('Codigo').AsInteger := StrToInt(dbedit1.Text); // se código for numérico (integer)
query1.ParamByName('Codigo').AsString := dbedit1.Text; // se código for texto (varchar)

ainda prefiro usar diferente. supondo que o campo associado ao dbedit1 seja CODIGO e o dataset (no datasource associado ao dbedit1) TabQualquer, então usaria assim:
query1.SQL.Add('select * from tbl where codigo = :Codigo');
query1.ParamByName('Codigo').AsInteger := TabQualquerCODIGO.AsInteger; // se código for numérico (integer)
query1.ParamByName('Codigo').AsString := TabQualquerCODIGO.AsString; // se código for texto (varchar)

como sempre digo (na assinatura), há sempre uma outra forma de fazer a mesma coisa.
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.