Ir para conteúdo

POWERED BY:

Arquivado

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

marvazoler

SUBSTR com reverse

Recommended Posts

Boa tarde, preciso de uma ajuda!

 

Em uma consulta estou usando SUBSTR, e esta dando certo, pois quero que retorne o primeiro nome

do funcionário, so que a empresa me pediu para colocar o primeiro no e o ultimo nome no cracha, e

so falta isso!!

 

olha a atual: Form2.ADOQuery1.SQL.Add('select SUBSTR(fuvw.nomecompletofunc,1,INSTR(fuvw.nomecompletofunc,'' '') - 1 ) as Nome,fuvw.nomecompletofunc,fuimg.imagem,fuvw.codfunc,fuvw.nomefunc,fuvw.nomecompletofunc,fuvw.DESCFUNCAO,doct.cpfnumero,doct.rgnumero,doct.ctpsnumero,func.dtnasctofunc');

da para encaixa o reverse?

 

Como fazer?

 

Desde ja agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um teste com este codigo!!

 

Form2.ADOQuery1.SQL.Add('select SUBSTR(fuvw.nomecompletofunc, 0, CHARINDEX('' '', fuvw.nomecompletofunc) + '' '' + REVERSE(SUBSTRING(REVERSE(fuvw.nomecompletofunc), 0, CHARINDEX('' '',REVERSE(fuvw.nomecompletofunc)))) as Nome,fuvw.nomecompletofunc,fuimg.imagem,fuvw.codfunc,fuvw.nomefunc,fuvw.nomecompletofunc,fuvw.DESCFUNCAO,doct.cpfnumero,doct.rgnumero,doct.ctpsnumero,func.dtnasctofunc');

mas me retorna o seguinte erro

 

String literals may have at most 255 elements

 

Obs: O curso para no final, func.dtnasctofunc');

 

O pode se?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por default, o tamanho máximo de uma string passada por add é limitado a 255 caracteres consecutivos... tente assim...

 

 

Form2.ADOQuery1.SQL.Add('select SUBSTR(fuvw.nomecompletofunc, 0, CHARINDEX('' '', fuvw.nomecompletofunc)');
Form2.ADOQuery1.SQL.Add(' + '' '' + REVERSE(SUBSTRING(REVERSE(fuvw.nomecompletofunc), 0, ');
Form2.ADOQuery1.SQL.Add('CHARINDEX('' '',REVERSE(fuvw.nomecompletofunc)))) as ');
Form2.ADOQuery1.SQL.Add('Nome,fuvw.nomecompletofunc,fuimg.imagem,fuvw.codfunc,fuvw.nomefunc,');
Form2.ADOQuery1.SQL.Add('fuvw.nomecompletofunc,fuvw.DESCFUNCAO,doct.cpfnumero,doct.rgnumero,');
Form2.ADOQuery1.SQL.Add('doct.ctpsnumero,func.dtnasctofunc');

 

Ps.: Não revisei se coloquei os cortes nos pontos corretos.... a idéia é quebrar o string gigante em menores de até 255 caracteres cada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente ele está reclamando que está faltando algum parênteses a direita... se pegar o sql gerado antes de dar o open e rodar no banco ele está correto? não ficou algum parênteses órfão no sql?

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.