Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RenatoReis

Instrução SQL

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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');
begin
 pCosif :=  'QualquerCoisa';
 ComandoSQL := Format(SQL_COMMAND, [5, QuotedStr('%' + pCosif + '%')]);

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.