Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Senhores, boa tarde.
Preciso fazer uma consulta numa tabela e buscar contas que tenham a sequencia parecida com a fornecida e um determinado nivel. Já rodei a instrução a seguir, por fora do programa e rodou perfeitamente:
select CONTA, NIVEL from SCCAPLAN where NIVEL='5' and CONTA like '%'+'1.1.1.10'+'%'
...Mas quando coloco no programa, tá dando pau. Fiz assim e de outras formas também:
pCosif:='1.1.1.10.01';
with dataModule1.qrVerif2 do
begin
close;
sql.Clear;
sql.Text:='select CONTA, NIVEL from SCCAPLAN where NIVEL=:pVez and CONTA like ' + '"%"' + pCosif + '"%"';
params.ParamByName('pVez').AsString:='5';
Open;
end;
O que pode estar errado?
ATT
Olá Felipe.
Quando o Open da instrução é executado ocorre a mensagem de erro: ... Expected lexical element not found: Expecting semi-colon
Location of error in the SQL statement is: 71
Na verdade acho que pode estar havendo algum problema em colocar aspas no sinal de percentual, assim: '%'
Isso é o que preciso no código. Já tentei de algumas outras formas e chutes, mas nada!
Att
Renato,
Troca a aspa dupla por 2 aspas simples ou usa a função QuotedStr para isso.
Exemplo
sql.Text := 'select CONTA, NIVEL from SCCAPLAN where NIVEL=5 and CONTA like ''%' + pCosif + '%''';
Melhor ficaria com Format e QuotedStr
var
ComandoSQL: String;
const
SQL_COMMAND = String ('select CONTA, NIVEL from SCCAPLAN where NIVEL =%d and CONTA like %s'); pCosif := 'QualquerCoisa';
ComandoSQL := Format(SQL_COMMAND, [5, QuotedStr('%' + pCosif + '%')]);BRILHOU!!
Isso ai Felipe, fiz a sugestão das aspas da forma que indicou e funcionou perfeitamente.
Brigadão Cara.
Abcs :clap:
Felipe,
Aproveitando a questão, enquanto aguardava uma solução, estava procurando pela Net e verifiquei que também poderia executar um script SQL, ou seja, gravar um arquivo com a instrução que ficaria com a extensão .SQL
Fiz isso, mas tive alguns problemas inclusive com a passagem do valor da variavel pCosif
Poderia me dar uma dica de como isso ficaria chamando a instrução de um arquivo .SQL
Valeu, Abcs
Me parece que não tem segredo...
Você só precisa ler o arquivo e passar o que você leu para o sql.text
Para ler o arquivo ou grava-lo é só dar uma olhada na net, um exemplo tem aqui:
http://www.codigofonte.net/dicas/delphi/129_lendo-e-gravando-arquivos-de-texto-em-delphi
Abcs,
>
BRILHOU!!
Isso ai Felipe, fiz a sugestão das aspas da forma que indicou e funcionou perfeitamente.
Brigadão Cara.
Abcs :clap:
Felipe,
Aproveitando a questão, enquanto aguardava uma solução, estava procurando pela Net e verifiquei que também poderia executar um script SQL, ou seja, gravar um arquivo com a instrução que ficaria com a extensão .SQL
Fiz isso, mas tive alguns problemas inclusive com a passagem do valor da variavel pCosif
Poderia me dar uma dica de como isso ficaria chamando a instrução de um arquivo .SQL
Valeu, Abcs
Pode dizer qual problema que dá?